С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Wrigley
0 / 0 / 0
Регистрация: 21.05.2018
Сообщений: 55

Объясните, пожалуйста, код (детально метод gameUpdate()

10.11.2019, 19:10. Показов 776. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните, пожалуйста, код (детально метод gameUpdate()):

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
public class Main extends Application {
Pane root;
Rectangle player, bot;
Circle ball;
Line line;
AnimationTimer timer;
private final int WIDTH = 600, HEIGHT = 400;
private int speedX = 4, speedY = 4, dv = speedX, dy = speedY;
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Game");
primaryStage.setScene(new Scene(createContent()));
primaryStage.show();
primaryStage.getScene().setOnKeyPressed(event -> {
if (event.getCode() == KeyCode.UP)player.setLayoutY(player.getLayoutY()-30);
if (event.getCode() == KeyCode.DOWN)player.setLayoutY(player.getLayoutY()+30);
});
}
private Parent createContent(){
root = new Pane();
root.setPrefSize(WIDTH, HEIGHT);
root.setStyle("-fx-background-color: black");
line = new Line(WIDTH/2,0,WIDTH/2,HEIGHT);
line.setStroke(Color.WHITE);
bot = new Rectangle(10,80,Color.WHITE);
bot.setLayoutX(0);
bot.setLayoutY(HEIGHT/2-40);
player = new Rectangle(10,80,Color.WHITE);
player.setLayoutX(WIDTH-10);
player.setLayoutY(HEIGHT/2-40);
ball = new Circle(5);
ball.setFill(Color.WHITE);
ball.setStyle("-fx-background-color: white");
ball.setLayoutX(WIDTH/2);
ball.setLayoutY(HEIGHT/2);
root.getChildren().addAll(line,bot,player,ball);
timer = new AnimationTimer(){
@Override
public void handle(long now){
gameUpdate();
}
};
timer.start();
return root;
}
private void gameUpdate(){
double x = ball.getLayoutX(), y = ball.getLayoutY();
if (x <= 10 && y > bot.getLayoutY() && y < bot.getLayoutY()+80) dv = speedX;
if (x >= WIDTH-10 && y > player.getLayoutY() && y < player.getLayoutY()+80) dv = -speedX;
if (y <= 0 ) dy = speedY;
if (y >= HEIGHT-5) dy = -speedY;
ball.setLayoutX(ball.getLayoutX()+dv);
ball.setLayoutY(ball.getLayoutY()+dy);
if(x < WIDTH/2 && bot.getLayoutY() > y)bot.setLayoutY(bot.getLayoutY()-5);
if(x < WIDTH/2 && bot.getLayoutY()+80 < y)bot.setLayoutY(bot.getLayoutY()+5);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.11.2019, 19:10
Ответы с готовыми решениями:

Объясните пожалуйста метод выбора с #
не могу его понять. как она действует. Код дан. for (i = 0; i &lt;= n - 2; i++) { int k = i;...

Опишите, пожалуйста, детально разгон проца и оперативы
процессор amd athlon 64 x2 4000+ 2.1 ГГц, оператива ddr2 2Gb 400Mhz + 1Gb 333Mhz, мать ASRock N68C-S UCC. И возможно ли на этом...

Объясните пожалуйста, как работает метод Locate?
Всем доброго времени суток. Есть БД Access, подключен к ней AdoConnection + AdoDataSet. Необходимо реализовать функцию поиска по БД, решил...

4
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
10.11.2019, 21:50
Ты похож на одного шизика, который раз в полгода приходил сюда спрашивать, как сделана та или иная игра, но все равно ничего не понимал. Так вот, зачем тебе это объяснять, если ты все равно ничего не поймёшь?
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,497
Записей в блоге: 26
11.11.2019, 21:34
Цитата Сообщение от Wrigley Посмотреть сообщение
Объясните, пожалуйста, код (детально метод gameUpdate()):
Как-то отформатировать код не пытались? И зачем нам номера строк в вашем коде?
Уважайте в конце концов, тех, которым вы задаете вопросы.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
11.11.2019, 23:11
Цитата Сообщение от vvm28 Посмотреть сообщение
И зачем нам номера строк в вашем коде?
эммм вообще то номера движок подставляет)
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,497
Записей в блоге: 26
12.11.2019, 00:53
Цитата Сообщение от Wrigley Посмотреть сообщение
детально метод gameUpdate()
dv - вычислить приращение по X
в зависимости от условий поменять знак.
установить новую координату экземпляру ball по иксу и по игреку.

если x < WIDTH/2 и координаты экземпляра bot по Y > y то установить координату Y bot равную текущей минус пять.
дальше похожие условия, установить координату Y bot плюс пять.

ball - Circle радиусом 5
bot - Rectangle 10 на 80

Вкрадце метод gameUpdate() должен обновлять координаты экземпляров ball и bot.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2019, 00:53
Помогаю со студенческими работами здесь

Объясните код пожалуйста
Здравствуйте, очень нужна помощь. Декларативные языки программирования даються с трудом, но в универе задали задание по Prolog. Нашел код,...

Объясните, пожалуйста, код
bool userAgeIs16 = age == 16; if( userAgeIs16 ) { Console.WriteLine(\&quot;В этом возрасте уже можно водить машину!\&quot;); } ...

Объясните пожалуйста код
Объясните пожалуйста как работает данная фраза(само задание найти в тексте какое количество раз повторяется заданное слово) count =...

Объясните пожалуйста код
public const UInt32 CFM_BOLD = 0x00000001; public const UInt32 CFM_ITALIC = 0x00000002; public const UInt32...

Объясните код, пожалуйста
def makechange(money, coin_values): #base cases if money &lt;= 0: # No change needed return 0 #base case (only...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru