Как я могу определить массив - PullRequest
0 голосов
/ 28 мая 2010

Хорошо, есть ли эффективный способ определить, в каком массиве вы находитесь в данный момент, с помощью KeyListener?

Мой код: http://www.javadan.pastebin.com/X68VyuGL

То, что я пытаюсь сделать здесь, это посмотреть, заблокирован ли текущий тайл, на котором я нахожусь.

Спасибо.

1 Ответ

2 голосов
/ 28 мая 2010

Полагаю, вам не нужно каждый раз проходить по всей матрице, чтобы выяснить, на каком тайле пользователи после ключевого события. Почему бы не сохранить состояние последней позиции игрока на игровом поле и использовать его при обновлении для каждого ключевого события, которое происходит?

Хорошо, вам нужна дополнительная информация о том, как это сделать, я дам вам ответ, и вы можете закончить его:

public class tileGen extends Applet implements KeyListener  {

    Image[] tiles; // tile arrays
    Image player; // player image
    int x, y, px, py, tx, ty; // x tile - y tile // player x - player y // tile x - tile y
    boolean left, right, down, up, canMove; // is true?
    int[][] board; // row tiles for ultimate mapping experience!
    final int NUM_TILES = 25; // how many tiles are we implementing?
    Label lx, ly; // to see where we are!
    public final int BLOCKED = 1;

    int lastX, int lastY;  // <=== new member fields to track last X and last Y


    public void keyPressed(KeyEvent e) {

  //  UPDATE LAST X AND LAST Y IN THIS METHOD 
            if (e.getKeyCode() == KeyEvent.VK_LEFT) {
                    left = true;
                    px = px - 32;
            }
            if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
                    right = true;
                    px = px + 32;
            }
            if (e.getKeyCode() == KeyEvent.VK_DOWN) {
                    down = true;
                    py = py + 32;
            }
            if (e.getKeyCode() == KeyEvent.VK_UP) {
                    up = true;
                    py = py - 32;
            }

            repaint();
    }


 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...