我一直在尝试让我的射弹在波浪中行进,但我不知道如何做到这一点。现在我的子弹射向屏幕的右侧。下面是我的代码:
public class Projectile {
protected Vector2 position;
protected Vector2 velocity;
public Projectile(float x, float y){
position = new Vector2(x, y);
velocity = new Vector2(50, 0);
}
public void update(float delta){
position.add(velocity.cpy().scl(delta));
}
}
我在网上看到我可以使用的函数Math.sin()
和Math.toRadians()
,但我不知道如何使用它们或实现它们。
在position.add
之前,我尝试了一些velocity.y += Math.sin(Math.toRadians(50))
和我的弹丸在一个漂亮的曲线中向下的东西,但我不知道我在做什么!我希望能够改变波的振幅和频率。任何帮助吗?
解决方案应该很简单:
你现在所做的是:你有一个二维位置。现在你添加一个2D矢量,它代表你的速度(50, 0) * delta
,其中delta是经过的时间。现在想想如何用正弦函数表示x和y方向的变化。这一点也不难,它就是数学。