The following the few lines of source code(cocos2d)
BodyNode *dataA = (BodyNode*) bodyA->GetUserData();
BodyNode *dataB = (BodyNode*) bodyB->GetUserData();
Class p1 = [Tuna class];
Class p2 = [Oilbarrel class];
Class p3 = [Barrelhorizontal class];
if( [dataA isKindOfClass:p1] ||[dataB isKindOfClass:p1]
|| [dataA isKindOfClass:p2] ||[dataB isKindOfClass:p2]
|| [dataA isKindOfClass:p3] ||[dataB isKindOfClass:p3]
)
{
state1 = tBomb1Hit;
}
Can you please assist me to change the above coding in cocos2dx?
You need to use dynamic_cast
if( dynamic_cast<Tuna*>(dataA) || dynamic_cast<Tuna*>(dataB)
||dynamic_cast< Oilbarrel*>(dataA) || dynamic_cast< Oilbarrel*>(dataB)
||dynamic_cast< Barrelhorizontal*>(dataA) || dynamic_cast< Barrelhorizontal*>(dataB) ){
state1 = tBomb1Hit;
}
dynamic_cast< Tuna* >(dataA) - if dataA isn't a Tuna instance then dynamic_cast return NULL