物理演算を含む SpriteKit を使用して、IOS 7 の機能を完全に備えたゲームを作ろうとしています。そのため、ユーザーが画面にタブで移動すると、他のボール (動いていないのでdynamic=NO
これらのターゲット ボールに設定) を介してボールを投げます。私がやりたいことは次のとおりです。
- すぐにボールを止めます(私は
resting=YES
これに使用しています) - categoryBitMask と contactTestBit マスクを投球からターゲット ボールのカテゴリ / contactBitMask に切り替える
- このボールのダイナミクスを停止します。
dynamic=NO
内部で設定している場合(またはdidBeginContact
のような他の関数であっても)、次のエラーが発生する場合、1つのことを除いてすべて問題ありません。update
didSimulatePhysics
アサーションに失敗しました: (typeA == b2_dynamicBody || typeB == b2_dynamicBody)、関数 SolveTOI、ファイル /SourceCache/PhysicsKit_Sim/PhysicsKit-4.6/PhysicsKit/Box2D/Dynamics/b2World.cpp、670 行目。
物理に関してはまだ計算が続いているので理由はわかりましたが、どうにかしてこれを設定しなければなりません。
では、衝突/接触後にプログラムでダイナミクスを停止するにはどうすればよいですか?