#java
#java
Вопрос:
У меня есть следующий код в Game.java:
public void start ()
{
Thread thread = new Thread(this);
thread.start();
this.world = new World();
}
В world class у меня есть настоящие предметы моей игры, набор стен, еда и игрок.
public class World {
private Food food;
private HashSet<Wall> walls = new HashSet<Wall>();
private Player player;
...
}
Проблема заключается в следующем: Я хочу, чтобы мои keylisteners были в классе player, но, похоже, я не могу понять, как это получить…
Я попытался реализовать класс KeyListener в Player.java и реализация 3 функций, которые поставляются с этим. Однако, player.java не позволяет мне использовать this.addKeyListener (this), поэтому мои ключевые события никогда не запускаются…
Как я могу заставить это работать?
Комментарии:
1. Является ли этот Swing (JApplet)? AWT (использует класс апплета)?
Ответ №1:
Вам нужно вызвать addKeyListener
на вашем Applet
/ JApplet
и передать (тот же!) player
экземпляр в качестве слушателя.
Комментарии:
1. Моей целью было сохранить все красиво и организованно (например, позволить игровому классу общаться только с World class, а не с базовыми классами Food и Player). Для этого решения (которое действительно работает) Я должен добавить метод getPlayer () в World class, который мне кажется не очень чистым. Или я все еще делаю что-то не так?
2. Вы могли бы предоставить
World
метод, который инициализирует себя изApplet
(путем добавления обработчиков)