0
我正在製作一個遊戲,當一個太空飛船在按下左鍵和右鍵時旋轉,當按下上鍵時向前移動。在移動的同時改變方向
目前該船可以在其前進的旋轉,但它會繼續在同一方向,它是在準備。
我將如何讓這個船可以改變它,同時向上移動的方向關鍵是被壓制?
這是飛船類的更新方法:
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);
}
}
,這是向上事件:
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);
}
}
設置一個標誌,確定哪個鍵或方向處於活動狀態。在主「遊戲循環」中檢查標誌並應用相應的增量 – MadProgrammer
類似[this](http://stackoverflow.com/questions/22748547/java-swing-timer-only-works-once-then-keyevents- fire-in-rapid-succession-holdi/22749251#22749251)或[this](http://stackoverflow.com/questions/16622630/gradually-speeding-a-sprite/16623202#16623202)或[this](http: //堆棧溢出。com/questions/34125578 /逐漸加速 - 精靈按鍵 - 逐漸減速 - 按鍵釋放/ 34126260) – MadProgrammer
和[類似於[this](http://stackoverflow.com/questions/) 13041297/java-moving-an-object-at-an-angle-and-changing-angle-with-keypress/13041547#13041547)應該允許您基於角度和要應用的增量計算x/y點 – MadProgrammer