如何使抛射物在波浪中运动



我一直在尝试让我的射弹在波浪中行进,但我不知道如何做到这一点。现在我的子弹射向屏幕的右侧。下面是我的代码:

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方向的变化。这一点也不难,它就是数学。

最新更新