Я хочу чтобы нажав на картинку "replay" игра началась заново. Но не могу сослаться на метод Nr1 из метода onRepaint

package ru.geekbrains.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;
    private static Image game_over;
    private static Image drop;
    private static Image replay;
    private static float replay_left = 520;
    private static float replay_top = 200;
    private static float drop_left = 200;
    private static float drop_top = -100;
    private  static float drop_v = 190;
    private static int score;


    public static void main(String[] args) throws IOException {
        int x = 1366;
        int z = 768;
        int k = Nr1(x, z);

    }
    public static int Nr1(int a, int b) throws IOException {

        background = ImageIO.read(GameWindow.class.getResourceAsStream("background.jpg"));
        game_over = ImageIO.read(GameWindow.class.getResourceAsStream("game_over.png"));
        drop = ImageIO.read(GameWindow.class.getResourceAsStream("drop.png"));
        replay = ImageIO.read(GameWindow.class.getResourceAsStream("replay.png"));
        game_window = new GameWindow();
        game_window.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        game_window.setLocation(0, 0);
        game_window.setSize(1366, 768);
        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.getWidth(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 + 20;
                    score++;
                    game_window.setTitle("Score: " + score);
                }

            }
        });

        game_window.add(game_field);
        game_window.setVisible(true);

        return a;
    }

    public 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;
            g.drawImage(background, 0, 0, null);
            g.drawImage(drop, (int) drop_left, (int) drop_top, null);
            if (drop_top > game_window.getHeight()) g.drawImage(game_over, 520, 250, null);
            if (drop_top > game_window.getHeight()) g.drawImage(replay, (int) replay_left, (int) replay_top, null);
            GameField restart = new GameField();
            restart.addMouseListener(new MouseAdapter() {
                @Override
                public void mousePressed(MouseEvent e) {
                    int x = e.getX();
                    int y = e.getY();
                    float replay_right = replay_left + replay.getWidth(null);
                    float replay_bottom = replay_top + replay.getWidth(null);
                    boolean is_replay = x >= replay_left && x <= replay_right && y >= replay_top && y <= replay_bottom;
                    if(is_replay){
                        int v = 1366;
                        int z = 768;
                        int k = Nr1(v, z);// не понимаю в чем проблема


                    }


                }
            });



    }


    private static class GameField extends JPanel{

        @Override
        protected void paintComponent(Graphics g){
            super.paintComponent(g);

                onRepaint(g);

            repaint();
        }
    }
}

Ответы (0 шт):