Java 对象向其所面对的方向移动
我正在做一个2d赛车游戏,目前我正在努力让赛车开动。我不需要汽车的物理特性是真实的,我只需要汽车(本例中为矩形)朝着它所面对的方向移动。所以如果我要把车右转20度,我希望它能朝那个方向行驶。但我不确定我将如何做到这一点(我对向量做了一些研究,但不太了解)。当前,长方体向所有方向移动,但不旋转Java 对象向其所面对的方向移动,java,vector,graphics,awt,graphics2d,Java,Vector,Graphics,Awt,Graphics2d,我正在做一个2d赛车游戏,目前我正在努力让赛车开动。我不需要汽车的物理特性是真实的,我只需要汽车(本例中为矩形)朝着它所面对的方向移动。所以如果我要把车右转20度,我希望它能朝那个方向行驶。但我不确定我将如何做到这一点(我对向量做了一些研究,但不太了解)。当前,长方体向所有方向移动,但不旋转 import java.awt.*; public class Box { public boolean[] KeyHold; public double posx, posy, ang
import java.awt.*;
public class Box {
public boolean[] KeyHold;
public double posx, posy, angle;
public Box() {
posx = 1280/2;
posy = 720/2;
}
public void update() {
KeyHold = Inputs.getKeyHold();
if(KeyHold[39]) {
posx++;
} else if (KeyHold[37]) {
posx--;
}
if(KeyHold[40]) {
posy++;
} else if (KeyHold[38]) {
posy--;
}
}
public void draw(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.clearRect(0, 0, 1280, 720);
g2d.setColor(Color.black);
g2d.fillRect((int) posx, (int) posy, 30, 60);
}
}
这可以使用M A T H来完成。你可以将一个二维速度向量
car.v
(长度与汽车速度成比例)与每辆汽车相关联,以表示其方向。“更新世界”时,每辆车的位置变为(car.x+=h*car.v.x;car.y+=h*car.v.y;
)。要旋转速度矢量,需要一个2*2旋转矩阵