【发布时间】:2016-04-06 20:58:34
【问题描述】:
我正在制作一个宇宙飞船的游戏,当按下左右键时它会旋转,当按下向上键时会向前移动。
目前这艘船可以在前进的同时旋转,但它会继续朝着它前进的方向前进。
我将如何做到这一点,以便在按住向上键时飞船可以改变其移动方向?
这是 SpaceShip 类的更新方法:
public void update(){
radians += ri;
System.out.println(radians);
if(radians < 0){
radians = 2 * Math.PI;
}if(radians > (2 * Math.PI)){
radians = 0;
}
x += xx;
y += yy;
}
这是正确的事件:
public void actionPerformed(ActionEvent e) {
if(pressed){
Board.getShip().setRI(0.05);
}else{
Board.getShip().setRI(0);
}
}
这是 up 事件:
public void actionPerformed(ActionEvent e) {
if(pressed){
Board.getShip().setXX(Math.cos(Board.getShip().getRadians()) * Board.getShip().getSpeed());
Board.getShip().setYY(Math.sin(Board.getShip().getRadians()) * Board.getShip().getSpeed());
}else{
Board.getShip().setXX(0);
Board.getShip().setYY(0);
}
}
【问题讨论】:
-
设置一个标志以确定哪个键或方向处于活动状态。在主“游戏循环”中检查标志并应用适当的增量
-
像this 这样的东西应该允许你根据你想要应用的角度和增量来计算 x/y 点
标签: java events game-physics key-bindings