Alex Arteni Ответов: 1

Как я могу проверить надписи


Привет, я пытаюсь сделать игру, в которой вы должны есть очки с доски. Я использовал swing для создания графического интерфейса, и теперь я создал каждую часть на столе, но теперь я застрял в попытке проверить положение метки.

Это та часть, где создается доска:

for (int i = 0; i < row; i++) {
            for (int j = 0; j < cols; j++) {
                grid[i][j] = new JLabel("", SwingConstants.CENTER);
                grid[i][j].setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
                grid[i][j].setFont(grid[i][j].getFont().deriveFont(20f));
                if (i == 0 || j == 0 || i == 9 || j == 19) {
                    grid[i][j].setBackground(Color.black);
                } else {
                    grid[i][j].setBackground(Color.WHITE);
                    int position = rand.nextInt(3);
                    if (position == 2) {
                        grid[i][j].setBackground(Color.red);
                    }
                }
                if (i == finalRandSpawn && j == finalRandSpawn1) {
                    grid[i][j].setBackground(Color.green);
                }
                if (i == finalRandSpawn2 && j == finalRandSpawn3) {
                    grid[i][j].setBackground(Color.BLUE);
                }
                if (i == 9 && j == 0) {
                    grid[i][j].addMouseListener(new MouseAdapter() {
                        @Override
                        public void mouseClicked(MouseEvent e) {
                            try {
                                restartButtonActionPerformed();
                            } catch (Exception exception) {
                                exception.printStackTrace();
                            }
                            super.mouseClicked(e);
                        }
                    });
                    grid[i][j].setText("RETRY");
                }
                grid[i][j].setOpaque(true);
                panel.add(grid[i][j]);
            }
        }
        panel.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                switch (e.getKeyCode()) {
                    case KeyEvent.VK_LEFT:
                        moveLeft(player);
                        System.out.println("Left");
                        break;
                    case KeyEvent.VK_DOWN:
                        moveDown(player);
                        break;
                    case KeyEvent.VK_RIGHT:
                        moveRight(player);
                        break;
                    case KeyEvent.VK_UP:
                        moveUp(player);
                        break;
                    default:
                        System.out.println("Use W-A-S-D only !");
                        break;
                }
                super.keyPressed(e);
            }
        });


и это методы движения

public static void moveUp(Player player) {
        int i = player.x;
        int j = player.y;
        grid[i][j].setBackground(Color.WHITE);
        grid[i - 1][j].setBackground(Color.GREEN);
        player.y = j;
        player.x = i - 1;
    }

    public static void moveDown(Player player) {
        int i = player.x;
        int j = player.y;
        grid[i][j].setBackground(Color.WHITE);
        grid[i + 1][j].setBackground(Color.GREEN);
        player.y = j;
        player.x = i + 1;
    }

    public static void moveLeft(Player player) {
        int i = player.x;
        int j = player.y;
        grid[i][j].setBackground(Color.WHITE);
        grid[i][j - 1].setBackground(Color.GREEN);
        player.y = j - 1;
        player.x = i;
    }

    public static void moveRight(Player player) {
        int i = player.x;
        int j = player.y;
        grid[i][j].setBackground(Color.WHITE);
        grid[i][j + 1].setBackground(Color.GREEN);
        player.y = j + 1;
        player.x = i;
    }


Все работает, но теперь я должен создать ту часть, где он останавливается, если ударяется о стену, и забивает, если вы съедаете очко. Может кто-нибудь дать мне совет?

Что я уже пробовал:

Я ничего не мог придумать, честно говоря, я смертельно застрял

1 Ответов

Рейтинг:
2

Gerry Schmitz

Это называется "обнаружение столкновений".

Java игры для начинающих. Обнаружение столкновений[^]