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

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

28.10.2015, 19:09. Показов 742. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru