gpt4 book ai didi

java - 绑定(bind)按键移动图片

转载 作者:行者123 更新时间:2023-11-29 06:58:16 24 4
gpt4 key购买 nike

我正在为一个学校项目开发游戏,作为一个步骤,我必须将键绑定(bind)到图像,该图像将在 x-y 轴上增加/减少。然而,我这样做的方式似乎不起作用,而不是少量添加,而是增加了 x/y 很多,并将图像传送到屏幕之外。

KeyListener代码

public void keyPressed(KeyEvent e) {

if (e.getKeyCode() == 87) {
up = true ;
if (e.getKeyCode() == 65) {
left = true ;
}
if (e.getKeyCode() == 68) {
right = true ;
}
if (e.getKeyCode() == 83) {
down = true ;
}
}

}

@Override
public void keyReleased(KeyEvent e) {

if (e.getKeyCode() == 87) {
up = false ;
}
if (e.getKeyCode() == 65) {
left = false;
}
if (e.getKeyCode() == 68) {
right = false ;
}
if (e.getKeyCode() == 83) {
down = false ;
}

}

游戏循环

public void run() {

while(running) {

//Player movement
if (up) {
y++ ;
}
if (left) {
x-- ;
}
if (right) {
x++;
}
if (down) {
y-- ;
}
//Player movement

}
}

图形循环

protected void paintComponent(Graphics g) {
super.paintComponent(g);
//Graphical loop start
g.drawImage(Player, x, y, null) ;

//Graphical loop end
repaint();

最佳答案

代码按照预期的方式工作。您只忘记了一件事:用于移动图像的 while 循环的运行速度比您预期的要快得多。只需插入一个 Thread.sleep(someDelay) 即可使循环运行得更慢,并且图像应该以更“用户友好”的速度移动。

关于java - 绑定(bind)按键移动图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30228339/

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