Java 按键法不';球员转身(旋转)时t更新
我想知道如何使它,使船的头部(球员)更新的方向,船是去。目前它的工作原理如下:Java 按键法不';球员转身(旋转)时t更新,java,awt,keylistener,Java,Awt,Keylistener,我想知道如何使它,使船的头部(球员)更新的方向,船是去。目前它的工作原理如下: 玩家同时按住向上/向下箭头键和向右/向左箭头键,这会使船继续沿着其出发的同一方向前进,但这只会在船移动时绕其中心旋转。我希望这样,当玩家同时按住上/下箭头键和左/右箭头键时,它会朝玩家所面对的方向移动 这是我目前的代码: if(key == KeyEvent.VK_RIGHT) { rotateRight = true; }if(key == KeyEvent.VK_LEFT)
- 玩家同时按住向上/向下箭头键和向右/向左箭头键,这会使船继续沿着其出发的同一方向前进,但这只会在船移动时绕其中心旋转。我希望这样,当玩家同时按住上/下箭头键和左/右箭头键时,它会朝玩家所面对的方向移动
if(key == KeyEvent.VK_RIGHT) {
rotateRight = true;
}if(key == KeyEvent.VK_LEFT) {
rotateLeft = true;
}if(key == KeyEvent.VK_DOWN) {
player.setDY(5*Math.cos(player.rotation));
player.setDX(-5*Math.sin(player.rotation));
}if(key == KeyEvent.VK_UP) {
player.setDY(-5*Math.cos(player.rotation));
player.setDX(5*Math.sin(player.rotation));
//System.out.println("x,y: " + player.x + "," + player.y + ", Rotation: " + player.rotation + ", DX: " + player.getDX() + ", DY: " + player.getDY());
}
我通过将上述代码更改为:
if(key == KeyEvent.VK_RIGHT) {
rotateRight = true;
}if(key == KeyEvent.VK_LEFT) {
rotateLeft = true;
}if(key == KeyEvent.VK_DOWN) {
down = true;
}if(key == KeyEvent.VK_UP) {
up = true;
}
因此,所有这些布尔值都在播放器类中处理,而不是在KeyInput类中处理——这一定是因为播放器类每秒更新60次,而KeyInput类仅在按下键时调用(必须手动调用)