【发布时间】:2014-08-16 22:52:26
【问题描述】:
好的,所以我一直在玩花栗鼠,我可以让两个精灵相互反弹,但是当我尝试使用以下方法时,它永远不会触发,
-(BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair tower:(CCNode *)nodeA BG:
(CCNode *)nodeB
{
NSLog(@"HELLO");
return YES;
}
这里是我创建物理节点的地方:
_physics = [CCPhysicsNode node];
_physics.debugDraw = YES;
[self addChild:_physics z:1];
_physics.collisionDelegate = self;
我用这段代码创建了第一个精灵:
background = [CCSprite spriteWithImageNamed:gameLevelImage];
[background setPosition:ccp(winSize.width/2,winSize.height/2)];
background.physicsBody.collisionType = @"BG";
background.physicsBody = [CCPhysicsBody bodyWithCircleOfRadius:50 andCenter:self.position];
这是另一个:
tower = [[TowerType alloc] initWithTheGame:self location:ccp(winSize.width/2, winSize.height/2)];
[towers addObject:tower];
[self MenuItemsVisible];
tower.physicsBody = [CCPhysicsBody bodyWithCircleOfRadius:50 andCenter:tower.position];
tower.physicsBody.collisionType = @"tower";
我在 h 文件中也有协议。
如果有人知道发生了什么,我们将不胜感激。 (:
【问题讨论】:
-
你有机会让它工作吗?我正遭受同样的问题。似乎因为某种原因没有设置碰撞类型。
-
不,还没有,在任何地方都找不到答案):
-
我想说的是,在您尝试设置碰撞类型之前,请确保您的精灵已正确分配。这就是我的问题。
-
哇,这对我来说也是如此。非常感谢(:
-
太好了,我在下面添加了它作为答案。接受这一点,以便其他有相同问题的人更容易。
标签: cocos2d-iphone collision-detection detection chipmunk