我在java中制作一个简单的游戏,而我正在使用键适配器进行键盘移动。它工作正常,但当我切换方向时,播放器在新方向上移动一个像素,然后停一会儿然后就好了(你知道,当你按下键盘上的一个字母时,它写了一个字母,但是如果你拿着它,过了一会儿它会开始流动)。有没有什么办法解决这一问题?或者我应该使用密钥监听器吗?
答案 0 :(得分:2)
更好的方法是为每个方向设置一个布尔值,例如movingRight
。最初是movingRight = false
。在keyPressed()
中,检查是否按下了右箭头(或D或任何键),如果是,则设置movingRight = true
。在keyReleased()
中,执行相同操作,但如果相关键已释放,则将布尔值设置为false。然后在主更新循环中,如果movingRight == true
将播放器向右移动一个像素,依此类推每个方向。
重申一下,这消除了小的延迟,因为它不依赖于按键事件,而只是确保按键已被按下并且尚未被释放(因此我们知道它被按下)
答案 1 :(得分:0)
我个人会使用keyListeners,它们最适合我。
尝试制作一个简单的方法来检查是否按下了女巫键,然后让它将JLable移动到 窗口上的位置,例如
public static void moveUp()
{
int x;
int y;
x = NewJFrame.playerJLabel.getX();
y = NewJFrame.playerJLbale.getY();
y = y + 10;
NewJFrame.playerJLable.setLocation(x, y);
}