我在错误的地方(GameDev
)发布了这个并且没有得到任何回应。所以我在这里再次发布。
我正在制作一个小程序游戏,它正在渲染,游戏循环正在运行,动画正在更新,但键盘输入不起作用。这是一个SSCCE。
public class Game extends JApplet implements Runnable {
public void init(){
// Initialize the game when called by browser
setFocusable(true);
requestFocus();
requestFocusInWindow(); // Always returning false
GInput.install(this); // Install the input manager for this class
new Thread(this).start();
}
public void run(){
startGameLoop();
}
}
这是 GInput 类。
public class GInput implements KeyListener {
public static void install(Component c){
new GInput(c);
}
public GInput(Component c){
c.addKeyListener(this);
}
public void keyPressed(KeyEvent e){
System.out.println("A key has been pressed");
}
......
}
这是我的 GInput 类。当作为小程序运行时,它不起作用,当我将 Game 类添加到框架时,它可以正常工作。
谢谢
现在解决了。查看我的解决方案