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

Игрушка "Поймай каплю". Не работает кнопка restart

20.10.2016, 09:16. Показов 1826. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста, как прописать кнопку game, чтобы игру не закрывать и открывать, а нажав на кнопку в самом окне она перезапускалась. По сути просто задать начальные значения (game_over = false; drop_v = 200; score = 0, но где их прописать? Или может ошибка в условиях появления кнопки game?
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
package lesson_6_7_8.project_1.catch_the_drop;
 
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;
 
public class GameWindow extends JFrame {
 
    private static GameWindow game_window;
    private static long last_frame_time;
    private static Image background_game;
    private static Image game_over;
    private static Image drop;
    private static Image game;
    private static boolean game_o = false;
    private static float game_left = 0;
    private static float game_top = 0;
    private static float game_right = 247;
    private static float game_bottom = 50;
    private static float drop_left = 200;
    private static float drop_top = -100;
    private static float drop_v = 200;
    private static int score;
 
    public static void main(String[] args) throws IOException {
        background_game = ImageIO.read(GameWindow.class.getResourceAsStream("background_game.png"));
        game_over = ImageIO.read(GameWindow.class.getResourceAsStream("game_over.png"));
        drop = ImageIO.read(GameWindow.class.getResourceAsStream("drop.png"));
        game = ImageIO.read(GameWindow.class.getResourceAsStream("game.jpg"));
        game_window = new GameWindow();
        game_window.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        game_window.setLocation(200, 100);
        game_window.setSize(906, 478);
        game_window.setResizable(false);
        last_frame_time = System.nanoTime();
        GameField game_field = new GameField ();
        game_field.addMouseListener (new MouseAdapter()  {
            @Override
            public void mousePressed(MouseEvent e) {
                int x = e.getX();
                int y = e.getY();
                float drop_right = drop_left + drop.getWidth(null);
                float drop_bottom = drop_top + drop.getHeight(null);
                boolean is_drop = x >= drop_left && x <= drop_right && y >= drop_top && y <= drop_bottom;
                if (is_drop) {
                    drop_top = -100;
                    drop_left = (int) (Math.random() * (game_field.getWidth() - drop.getWidth(null)));
                    drop_v = drop_v + 5;
                    score++;
                    game_window.setTitle ("Score: " + score);
                }
                boolean is_game = x >= game_left && x <= game_right && y >= game_top && y <= game_bottom;
                if (is_game) {
                    game_o = false;
                    drop_v = 200;
                    score = 0;
                }
 
            }
        });
        game_window.add(game_field);
        game_window.setVisible(true);
    }
 
    private static void onRepaint (Graphics g) {
        long current_time = System.nanoTime();
        float delta_time = (current_time - last_frame_time) * 0.000000001f;
        last_frame_time = current_time;
 
        drop_top = drop_top + drop_v * delta_time;
        //drop_left = drop_left + drop_v * delta_time;
        g.drawImage(background_game, 0, 0, null );
        g.drawImage(drop, (int) drop_left, (int) drop_top, null);
        if (drop_top > game_window.getHeight()) {g.drawImage(game_over, 280, 120, null);
            game_o = true;
        g.drawImage (game, 0, 0, null);}
 
    }
 
    private static class GameField extends JPanel {
        //динамическое замещение
        @Override
        protected void paintComponent (Graphics g){
            super.paintComponent (g);
                onRepaint (g);
                repaint ();
 
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.10.2016, 09:16
Ответы с готовыми решениями:

Кнопка restart в приложении
Приветствую! Имеется примитивное приложение с перетаскиванием объектов. Требуется создать кнопку restart, т.е. &quot;начать заново&quot;,...

В 90-е годы у детей была популярная игрушка - тамагочи. Игрушка представляла собой виртуальный домашний питомец
В 90-е годы у детей была популярная игрушка - тамагочи. Игрушка представляла собой виртуальный домашний питомец. Давайте представим...

Не корректно работает Application.Restart();
Здравствуйте. У меня есть приложение, которое должно работать только из сети. Оно находится на сетевом хранилище. По какой-то причине...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.10.2016, 09:16
Помогаю со студенческими работами здесь

Не работает clock.restart() в функции
функция: void test(RenderWindow&amp; window, Clock clock) { float time = clock.getElapsedTime().asMilliseconds(); time =...

You need to restart your computer. Hold down the Power button for several seconds or press the Restart button
Доброго времени суток, жители форума! При загрузке ОС MAC выдает ошибку &quot;You need to restart your computer. Hold down the Power button...

Не работает кнопка Ctrl + левая кнопка мыши в Excel
Не работает кнопка ctrl + левая кнопка мыши в excel.Не выделяются ячейки.Хотя на рабочем столе или в любой папке выделяются любые несколько...

Не работает жесткий диск a disk read error occurred press ctrl alt del to restart
При запуске ноутбука вылетает надпись:a disk read error occurred press ctrl alt del to restart, другой жесткий диск на этом ноутбуке...

Сделать график похожий на падающую каплю
Дали задание. Нужно сделать график похожий на падающую каплю. Есть ли книги с объяснением что к чему тут относится? Непонятно как...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru