C++ .mm ファイルである Box2d を使用して Contact Listener を実装しています。
二つの泡が衝突するたびに、何かを実行できるように知りたい. これが私のコードです:
void ContactListener::BeginContact(b2Contact* contact)
{
b2Body* bodyA = contact->GetFixtureA()->GetBody();
b2Body* bodyB = contact->GetFixtureB()->GetBody();
if (bodyA->GetUserData() != NULL && bodyB->GetUserData() != NULL)
{
BubbleSprite* bNodeA = (BubbleSprite*)bodyA->GetUserData();
BubbleSprite* bNodeB = (BubbleSprite*)bodyB->GetUserData();
BOOL oneIsBeingTouched;
if(bNodeA.isDrag == YES || bNodeB.isDrag == YES) oneIsBeingTouched = YES;
...
BubbleSprite には、property BOOL isDrag
現在ユーザーがドラッグしているかどうかを示す があります。私が得る問題は次のとおりです。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'-[CCSprite isDrag]: unrecognized selector sent to instance 0x1ed504a0'
BubbleSprite は CCSprite のサブクラスです。isDrag は適切に宣言され、そのファイルで合成されます。何が起こっているのかについて何か考えがある人はいますか?ありがとう