【发布时间】:2012-01-06 00:14:09
【问题描述】:
我正在尝试实现重力,其中包括通话时间和加速度。
我尝试使用通常的重力,看起来像这样:
velocity += gravity * dt;
position += velocity * dt;
这对于一个普通的平台游戏来说可能已经足够好了,但我正在尝试制作一款受“直升机游戏”启发的游戏,你必须在不接触墙壁的情况下穿过隧道。
我想做的不同的是,我希望能够在下降的过程中保存上升速度,这将在再次上升时使用,所以我会在开始时有一些加速。
我还想要某种通话时间,所以当你到达顶部时,它不会像它那样快速地迫使你下降,如果我使用代码示例中的重力。
这张图片说明了我想要的曲线喜欢有:
请注意,整个控制是一键完成的,例如按住空格会飞起来,松开就会下潜。
角色也永远不会向左或向右移动,因为它在屏幕上会有一个静态的 X 位置,所以不能使用矢量。
我花了几个小时试图让它工作,但没有成功.我也尝试在互联网上搜索,但没有任何运气。
“鲸鱼小径”游戏获得了我想要的重力。
这是游戏视频的链接:@987654321 @
我不是一个物理学家,所以如果你能给出一个实际代码的例子会很酷
我希望任何人都可以帮助我解决这个问题。
【问题讨论】:
-
不是一个坏问题,但显示一些代码来说明您已尝试过的内容 - 以及对 如何 它不起作用的描述 - 将帮助您获得答案。 :)
-
我也不是物理学家,但我猜你需要更深入地研究物理学才能完成你想要的。所以我认为飞机的物理学应该你进入大方向。也许this 至少可以帮助您找到正确的单词来寻找问题的解决方案。同样在最新的蝙蝠侠 - 阿卡姆城游戏中,你也有类似的机制,也许值得一试。
-
@djacobson 这主要是随机代码,因为我不知道该去哪里,所以它没有任何好处:)
-
@dowhilefor 你可能是对的,但如果已经有一些代码就好了;)
-
在 Whale Trails 游戏中,即使鲸鱼停留在屏幕上的相同位置,水平速度也会发生变化。屏幕滚动速度加快和减慢。似乎您需要使用 2D 矢量来复制此行为。