所以我正在制作一个 2D 安卓游戏,你用光标瞄准,你的角色在光标点击的地方射击。创建箭头时,将调用此方法
private final float GRAVITY = 100, SPEED = 50f;
public Arrow(float dx, float dy, float x1, float y1, float x2, float y2,)
{
destination = new Vector2(dx, dy);//mouse clicked here
//x1 and y1 are the starting coordinates
bounds = new Polyline(new float[]{x1, y1, x2, y2});
double r = Math.atan2(dy-y1, dx-x1);//calculate angle
velocity = new Vector2();
velocity.x = (float)(Math.cos(r) * SPEED);
velocity.y = (float)(Math.sin(r) * SPEED) + ACCOUNT FOR GRAVITY;
acceleration= new Vector2(0, GRAVITY);
}
这是更新方法,非常简单
public void update(float delta)
{
velocity.add(acceleration.cpy().scl(delta));
position.add(velocity.cpy().scl(delta));
}
我如何解释重力?如果重力设置为 0,则箭头沿直线移动到鼠标单击的坐标,但在重力作用下,它总是短。我不知道如何解释重力。我认为三角洲可能把我搞砸了。