3
使快的东西变慢(Box2D)
我正在开发一款游戏,您可以控制投石机向对手投球。 这就像一个名为“中世纪围攻”的游戏。当投石机摆动手臂时,玩家需要抓住最佳时机按下按钮并释放球。然后,球将以切线角度飞行。 我现在的问题是,投石机的手臂摆动太快,以至于玩家无法抓住正确的时刻。同时必须如此之快,否则不能扔得足够远。并且有一根细绳将球和投石机臂连接起来,如果臂摆动太慢,则当臂移动时,球只是悬在绳上。 我通过切换步长来解决问题,每当手臂摆动时,我都将步长从1/60更改为1/200。一旦球员放开球,球便回到了1/60。 除了我的游戏适用于具有网络功能的多人游戏外,这还算不错。因此,更改步骤可能会导致问题。 我能想到的另一种解决方案是让它缓慢摆动,但是当玩家释放球时,我会在保持球方向的同时手动向球上增加速度。我不太喜欢这种解决方案,因为它看起来很假,但我仍然有一个问题,就是除非球非常短,否则球只是挂在弦上。 请对此有所说明,谢谢! 编辑 感谢大家的投入,我通过使手臂缓慢摆动来解决问题,并在玩家释放球时抓住球的速度和两倍。它看起来与更改步长大小完全相同。我只需要做一件事。因为手臂的摆动非常缓慢,所以球只是悬在手臂末端而不是摆动。我通过在挥杆期间和仅在挥杆期间在球上施加与重力相等的力来解决此问题。然后它不再挂在那里,而是与手臂一起摆动。 @MrCranky的答案很详细,看起来很可行,所以我接受。:)