当使用纯的、未包装的Box2D和Cocos2D时,我曾经能够使用一个名为GetReactionForce的漂亮函数来获得关节上的反作用力。我最近开始尝试Sprite Kit的物理效果,但我似乎没有发现类似的东西。据我所知,还没有现成的。我是否有办法在Sprite Kit中实现这一点?物理引擎仍然是Box2D,但并非所有功能都可用。我认为这可以用物体形成关节的质量、密度、速度等特性来完成。但我不知道怎么做。
这不是现成的,我想不出一种方法来模拟或使用Sprite Kit的内置物理。
也就是说,忽略Sprite Kit的物理效果并在应用中嵌入Box2D(或Chipmunk)是相当容易的。你可以在场景的didSimulatePhysics消息中步进世界(即使physicsWorld属性为nil也会被调用)。您可以将对节点的引用存储在body的userData中,然后枚举body并更新其节点的位置和zRotation属性(从body的userData中获得)。
这些是必要的步骤。仅仅因为Sprite Kit内置了物理并不意味着你不能使用其他物理引擎。