我正在尝试使用包含物理的 SpriteKit 制作具有完全 IOS 7 功能的游戏。因此,当用户点击屏幕时,我将球扔过其他一些球(这些球没有移动,我dynamic=NO
为这些目标球设置)。我想做的是:
- 立即停止球(我正在使用
resting=YES
这个) - 将 categoryBitMask 和 contactTestBit 掩码从投掷球切换到目标球的类别/contactBitMask
- 停止这个球的动力。
一切都很好,除了一件事,当我在dynamic=NO
里面设置didBeginContact
(甚至任何其他函数,如update
or didSimulatePhysics
)时出现以下错误:
断言失败:(typeA == b2_dynamicBody || typeB == b2_dynamicBody),函数 SolveTOI,文件 /SourceCache/PhysicsKit_Sim/PhysicsKit-4.6/PhysicsKit/Box2D/Dynamics/b2World.cpp,第 670 行。
好吧,我明白了原因,因为关于物理的计算仍在继续,但不知何故我必须设置它。
那么如何在碰撞/接触后以编程方式停止动力学?