Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 22.03.2014
Сообщений: 2

Реализовать программу, в которой 3 объекта будут иметь своё поведение

28.10.2015, 19:09. Показов 747. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Только начал изучение Java, есть задача реализовать программу, в которой можно будет добавить в окно 3 объекта, которые будут иметь своё поведение и двигаться по экрану. Например один двигается к установленной точке, другой уклоняется от остальных объектов.
Вот, что есть на текущий момент(шарик который двигается по экрану и отбивается от стенок):

Написал такой код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/**
 * Created by Dmitriy on 28.10.2015.
 */
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
 
public class Frame extends JPanel  {
    static JFrame frame;
    static JButton first_button;
 
 
    MovableObject ball = new MovableObject(this);
 
    private void move() {
        ball.move();
    }
 
    public void paint(Graphics g) {
        super.paint(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
        ball.paint(g2d);
    }
 
    public void init() throws InterruptedException {
        frame = new JFrame("Mini Tennis");
         first_button = new JButton("1");
        first_button.addActionListener(new first_buttonListener());
        JButton second_button = new JButton("2");
         second_button.addActionListener(new second_buttonListener());
        JButton third_button = new JButton("3");
           third_button.addActionListener(new third_buttonListener());
        Frame game = new Frame();
        frame.getContentPane().add(BorderLayout.CENTER,game );
        frame.getContentPane().add(BorderLayout.WEST,first_button );
        frame.getContentPane().add(BorderLayout.EAST,second_button );
        frame.getContentPane().add(BorderLayout.SOUTH,third_button );
 
        frame.setSize(300, 400);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        while (true) {
            game.move();
            game.repaint();//перерисовываем окно
            Thread.sleep(10);//делаем небольшую паузу
        }
 
    }
 
    public static void main(String[] args) throws InterruptedException {
        Frame l = new Frame();
        l.init();
 
 
    }
    static class first_buttonListener implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
 
        }
    }
    static class second_buttonListener implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
 
            first_button.setText("efe");
        }
    }
    static class third_buttonListener implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
 
            first_button.setText("efe");
        }
    }
}
 
/**
 * Created by Dmitriy on 28.10.2015.
 */
import java.awt.Graphics2D;
public class MovableObject {
 
    int x = 0;
    int y = 0;
    int xa = 1;
    int ya = 1;
    private Frame game;
 
    public MovableObject(Frame game) {
        this.game= game;
    }
 
    void move() {
        if (x + xa < 0)
            xa = 1;
        if (x + xa > game.getWidth() - 30)
            xa = -1;
        if (y + ya < 0)
            ya = 1;
        if (y + ya > game.getHeight() - 30)
            ya = -1;
 
        x = x + xa;
        y = y + ya;
    }
 
    public void paint(Graphics2D g) {
        g.fillOval(x, y, 30, 30);
    }
}
Теперь появился вопрос, как сделать, чтоб при нажатии на кнопку появлялся ещё один шарик.
И если это получится сделать, интересно, как сделать, чтоб при нажатии на область появлялась точка, к которой потом будет двигаться шар.
Если есть какая-то статья для новичков, буду только рад.
Потому что с рисованием ещё не сталкивался ни разу)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.10.2015, 19:09
Ответы с готовыми решениями:

Напишите программу с реализацией стека, где его элементы будут иметь строковый тип – string
Здравствуйте! Помогите, пожалуйста, написать программу с реализацией стека, где его элементы будут иметь строковый тип – string. За основу...

Составить программу, в которой будут вводиться 7 - 10 строк таблицы
Здаровчик:3 Помогите плз, внести данные в таблице с помощью &quot;структуры, массив структуры&quot; Сделал, но при вводе данных в...

Создать программу, в которой будут лекции, лабораторные, тесты и т.п
:cry: Срочно надоо

1
 Аватар для evilcockroach
14 / 14 / 5
Регистрация: 29.07.2013
Сообщений: 138
03.11.2015, 00:38
Как по мне, будет это все проще реализовывать на OpenGL, с помощью библиотеки для Java.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.11.2015, 00:38
Помогаю со студенческими работами здесь

Написать программу, в которой будут объявлены структуры Points и Line
1. Написать программу, в которой будут объявлены структуры Points и Line, создан динамический массив объектов Line и нарисованы все...

Написать программу, в которой будут объявлены структуры Points и Ellipse
Написать программу, в которой будут объявлены структуры Points и Ellipse, создан динамический массив объектов Ellipse и нарисованы все...

Как сделать программу, в которой будут новости, обновляемые с моего компьютера?
Здравствуйте,мне нужно сделать программу,в которой будут новости,обновляемые с моего компьютера и чат,скажите как это можно реализовать?

Написать программу для создания матрицы, в которой будут числа от 0 до 1 с шагом 0,5
Необходимо написать программу для создания матрицы, в которой будут числа от 0 до 1 с шагом 0,5 Размерность матрицы варьируется ...

Нужно написать программу, в которой будут значения считываться из файла и обрабатываться в цикле.
Нужно написать программу, в которой будут значения считываться из файла, при этом значения должны браться по 6 строчек(первые 6 строчек,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru