我正在制作一个简单的游戏,需要做一些类似于水果忍者游戏的事情。我现在正试图让对象以曲线从底部飞到屏幕右侧,就像这样(但从随机位置而不是中间):
因为我对数学知之甚少,所以我已经坚持了很长一段时间。我应该如何计算这个?
我让它以一种非常简单和讨厌的方式工作,但对象有一个静态速度,而不是很好的平滑,甚至我都不知道我刚刚做了什么。
我正在制作一个简单的游戏,需要做一些类似于水果忍者游戏的事情。我现在正试图让对象以曲线从底部飞到屏幕右侧,就像这样(但从随机位置而不是中间):
因为我对数学知之甚少,所以我已经坚持了很长一段时间。我应该如何计算这个?
我让它以一种非常简单和讨厌的方式工作,但对象有一个静态速度,而不是很好的平滑,甚至我都不知道我刚刚做了什么。
在运动学方程中使用初始速度、发射角度和重力加速度。
根据牛顿第一运动定律,除非外力作用在物体上,否则物体以恒定的速度沿恒定的方向运动。这意味着每个对象都有一个位置(以 X 和 Y 坐标表示),该位置由每个游戏帧的向量(以 x 方向和 y 方向的速度表示)更改。当你开始运行时,你已经成功了一半。
for (GameObject object: gameObjects) {
object.position.x += object.vector.x;
object.position.y += object.vector.y;
}
但在这种情况下,你有一种影响物体的力:重力。重力是向 Y 方向的恒定加速度。这意味着矢量每帧都会被重力改变:
for (GameObject object: gameObjects) {
object.vector.y -= GRAVITY;
object.position.x += object.vector.x;
object.position.y += object.vector.y;
}