Cocos2d iphone cocos2dv3碰撞检测

Cocos2d iphone cocos2dv3碰撞检测,cocos2d-iphone,collision-detection,collision,Cocos2d Iphone,Collision Detection,Collision,我试图检查两个物体的碰撞,但碰撞检测回调并没有被触发。 这是我的密码: 1) 我的CCScene实现了CCPhysicsCollisionDelegate协议 2) 我为物理设置了碰撞代理 _physics = [CCPhysicsNode node]; _physics.gravity = PHYSICS_GRAVITY; _physics.debugDraw = YES; _physics.collisionDelegate = self; [self addChild:_physics];

我试图检查两个物体的碰撞,但碰撞检测回调并没有被触发。 这是我的密码:

1) 我的CCScene实现了CCPhysicsCollisionDelegate协议

2) 我为物理设置了碰撞代理

_physics = [CCPhysicsNode node];
_physics.gravity = PHYSICS_GRAVITY;
_physics.debugDraw = YES;
_physics.collisionDelegate = self;
[self addChild:_physics];
3) 对于两个实体,我分别设置了碰撞类型

body1.collisionType       = @"body1";
body2.collisionType       = @"body2";
4) 就是这样,当这两个实体碰撞时,没有调用任何CCPhysicsCollisionDelegate回调方法

- (BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair typeA:(CCNode *)nodeA     typeB:(CCNode *)nodeB
{
    NSLog(@"HELLO");
    return YES;
}
你能帮我做这个吗?您是否能够在cocos2dv3中接收冲突回调


提前感谢

在cocos2d v3物理中,
冲突类型
消除了设置整数位掩码来定义冲突类型的需要。参数名
ccphysiscollisiondelegate
方法必须是您希望自己处理的冲突类型。因此,在您的例子中,冲突回调方法应该是

- (BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair body1:(CCNode *)nodeA     body2:(CCNode *)nodeB
{
    NSLog(@"HELLO");
    return YES;
}

默认情况下,cocos2d中的所有内容都会发生冲突,但是如果您将两个实体的
冲突组设置为相同,则它们不会发生冲突。

您可以发布回调方法吗?-(BOOL)ccphysiccollisionbegin:(ccphysiccollisionpair*)对类型a:(CCNode*)nodeA类型b:(CCNode*)nodeB{NSLog(@“HELLO”);返回YES;}我尝试了新的cocos2d模板项目,所以我基本上设置了_physics.collisionDelegate=self;但无论如何,回调都不是firednot确定的,但冲突类型不是意味着要将可能发生冲突的对象组合在一起吗?如果是这样的话,那么使用两种不同的类型意味着它们将无法与同一种碰撞类型发生碰撞—这两种类型都不起作用。不管怎样,尸体在碰撞,问题是回调没有被触发。真的很奇怪…非常感谢,它很有效!!另一个问题是:有没有可能使两个物体不相互碰撞,但在它们相交时能够得到回调?好的,我想出来了。我刚从CCPhysicsCollisionBegin返回NO是的,我也有同样的问题,vola。。没有注意到我需要捕获回调方法的签名:|