0

我添加了两个对象,每个对象都有自己的物理体。第一个具有碰撞类型Player,第二个具有碰撞类型Enemy。奇怪的是,当我将回调设置为:

-(BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair Player:(CCNode *)nodeA Enemy:(CCNode *)nodeB
{
    return true;
}

但是当我将方法设置为此:

-(BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair Player:(CCNode *)nodeA wildcard:(CCNode *)nodeB
{
    return true;
}

它有效,但显然我不希望它检测玩家接触到的每个物体的碰撞,我只想与敌人发生碰撞。为了让这更令人费解,我认为 Enemy 的碰撞类型上的名称可能是错误的。使用上面列出的工作方法,我添加了这个:

NSString* nodeAType = [nodeA.physicsBody collisionType];
NSString* nodeBType = [nodeB.physicsBody collisionType];

果然输出是PlayerEnemy

这两个对象设置为传感器,而不是设置为静态(碰撞属性)。

4

0 回答 0