gpt4 book ai didi

Java2 我 : keyPressed() not working inside GameCanvas

转载 作者:行者123 更新时间:2023-11-29 09:17:38 24 4
gpt4 key购买 nike

我知道 J2ME 已经过时了,但我必须为作业执行此操作。目前,我正在使用 GameCanvas 类,我的游戏是一个线程,所以我的代码看起来像这样......

class Game extends GameCanvas implements Runnable {
public GameCanvas() {
super(false);
}

public void run() {
while (true) {
draw();
flushGraphics();
}
}

protected void keyPressed(int keyCode) {
System.out.println("Hey, it actually worked.");
// other code to handle key press...
}
}

可悲的是,无论我在模拟器的小键盘上敲了多大的垃圾邮件,keyPressed 方法都不会被调用。我知道 GameCanvas 具有的 getKeyStates() 方法,但我不想使用它,因为我不仅要捕获游戏键,还要捕获数字键 1~9.

有谁知道为什么我的代码没有进入我的 keyPressed() 方法,我能做些什么?非常感谢。


不知道我哪里出错了……但在稍微调整一下后,它开始工作得很好。非常感谢你们! :)

最佳答案

你有一个 busy waitGame#run 方法中,这很可能会导致设备忽略您的所有点击,从而使您的 UI 失去响应能力。

为了简单测试上面的假设是否正确,只需在循环中插入sleep,如下所示:

    while (true) {
draw();
flushGraphics();
try { Thread.sleep(100); } // sleep for 1/10 sec
catch (InterruptedException ie) { System.out.println(ie); }
}

如果以上有助于恢复 UI 响应能力,请重新设计您的应用程序以避免繁忙的等待 - MIDP API 提供了几种方法来实现这一目标。

关于Java2 我 : keyPressed() not working inside GameCanvas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8474138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com