Это мой код.Почему мой KeyListener не работает?
По существу, я создаю объект player
, который управляет анимацией; однако GameController
отправляет команды Player
через общедоступные статические методы.
Однако, у меня возникли проблемы с этой частью с keyPressed
, keyReleased
и keyTyped
не работают.
Я поставил операторы печати, чтобы проверить, показывает ли KeyEvent
что угодно, но это не так. Я также проверил свой код с работающим mouseListener
. Таким образом, я не совсем уверен, что я делаю неправильно.
import objectdraw.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
public class GameController extends WindowController implements KeyListener, MouseListener {
Player player;
public GameController() {
super();
}
public void begin() {
Image sprite0 = getImage("1.png");
canvas.addKeyListener(this);
canvas.addMouseListener(this);
player = new Player (250, 0, sprite0 ,canvas);
}
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyChar());
}
public void keyReleased(KeyEvent e) {
System.out.println(e.getKeyChar());
}
public void keyTyped(KeyEvent e) {
}
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }
public void mousePressed(MouseEvent e) {
if (Player.canJump && !Player.falling) {
Player.canJump = false;
Player.falling = false;
Player.jumping = true;
}
}
public void mouseReleased(MouseEvent e) { }
public void mouseClicked(MouseEvent e) {
}
}
Является ли 'begin()' вызовом? –
В вашем вопросе есть много вещей, которые помогут вам получить лучшую помощь и скоро ответьте: 1) Где кадр 2) 'canvas' - это рамка или панель? 3) Что такое 'WindowController'? – Azad
Да начинается начало. Изображение правильно отображается, поэтому я предполагаю, что он вызван. WindowController используется с objectdraw. В принципе, он создает для меня «DrawingCanvas», и я запускаю appletviewer, например, appletviewer controler.html –