我一直试图让我的射弹旅行成波,但我无法弄清楚,怎么做。现在我的子弹朝向屏幕的右侧。这是我的代码:
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()
,但我不知道如何使用它们或实现它们。
我在velocity.y += Math.sin(Math.toRadians(50))
前沿着position.add
的路线尝试了一些东西,我的射弹以一条漂亮的曲线往下走,但我根本不知道我在做什么!我希望能够改变波的幅度和频率。有什么帮助吗?
答案 0 :(得分:1)
好的解决方案应该很简单:
你在做什么atm:你有一个2D位置。现在你向它添加一个2D矢量,它代表你的速度(50, 0) * delta
,其中delta是经过的时间。
现在想想如何用正弦函数表示你的x和y方向变化。这根本不难,只是数学。