我已经完成了关于sprite-kit,文档,可用演示以及我脑子里的大量空白空间的问题,这些空间试图找出这个,但是已经很短了。
研究基于回合制(基于物理的游戏)的回合制概念验证。玩家轮流将节点放置在其他节点的集合中并让物理学发挥作用。我感到困惑的是确定所有碰撞都已经发挥作用并且转弯已经结束。
似乎节点从不停止碰撞。
答案 0 :(得分:2)
物理模拟这是一项棘手的任务。
首先,在重力作用的情况下,你总是会对身体产生一种可能阻止其静止的力。因此,您需要每隔几步(或每个帧,如果必须)测试每个物体,以查看其速度矢量长度是否小于给定阈值。然后手动将正文resting
状态设置为YES。
在联系过程中,身体可能会再次醒来,因此在didSimulatePhysics
中联系解决后执行此步骤至关重要。
诀窍在于找到一个足够大的门槛,以保证物理纠缠的结束"不要太高,不要让物体停在他们显然不应该的地方。
即便如此,您可能还需要设置一个计时器,该计时器在每个身体的速度低于另一个(更高)阈值时开始,表明无论如何都可能很少有来自这些身体的力量,以及是否在宽限期之后(即10秒)身体仍未完全休息但低于此阈值,请考虑已解决的碰撞(就游戏而言)。
同样仍未休息的身体数量可能是结束比赛的指标,即如果只有3或4个身体仍在运动,那么可能也不会发生太多事情。