私はシマリス物理学を使用しており、2 つの cpBodies がいつ衝突するかを調べるために衝突検出を行いたいと考えています。いくつか質問があります。
- cpCollPairFuncまたは cpSpaceAddCollisionHandlerの使用例を教えてください。
- 長方形の交差点の周りを見てきました。ポリゴンでも可能ですか?
- 上に別のライブラリ (SpaceManager など) を使用する必要がありますか?
ありがとうございました!
F.
私はシマリス物理学を使用しており、2 つの cpBodies がいつ衝突するかを調べるために衝突検出を行いたいと考えています。いくつか質問があります。
ありがとうございました!
F.
次の行を追加する必要があります
shape-> collision_type = kCollisionTypeParticle;
cpSpaceAddCollisionHandler(space_、kCollisionTypeParticle、kCollisionTypeParticle、collisonDetect、NULL、NULL、NULL、self);
kCollisionTypeParticleは列挙型であり、2種類の異なるパーティクルがある場合に定義できます。
typedef enum {
kCollisionTypeParticle、
kCollisionTypeParticleNew
} CollisionType;
ここで、collisonDetectは、次のように登録する必要があるメソッドです。
cpBool collisonDetect(cpArbiter * arb、struct cpSpace * space、void * data){
* layer =(*)data;
[レイヤーcollisonDetect:arb];
cpTrueを返します。
}
ここで、残りのコードを処理します
-(void)collisonDetect:(cpArbiter *)arb {
NSLog(@ "COLLISION DETECTED");
}
ジョーさん、返信ありがとうございます。コロナはフリーウェアじゃないですよね。
最後の救世主は、http: //www.cocos2d-iphone.org/forum/topic/9425とcpSpaceAddCollisionHandlerメソッドでした。