【问题标题】:Class in Cocos2dxCocos2dx 中的类
【发布时间】:2013-09-06 11:02:35
【问题描述】:

以下几行源码(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;
}

你能帮我改一下cocos2dx上面的编码吗?

【问题讨论】:

  • 你的问题不清楚。

标签: c++ objective-c cocos2d-x translate


【解决方案1】:

你需要使用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(dataA) - 如果 dataA 不是 Tuna 实例,则 dynamic_cast 返回 NULL

【讨论】:

    猜你喜欢
    • 2013-09-11
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多