2014-09-01 103 views
0

我很痛苦,试图绕过我的头。我创建了另一个类名为ContactEnemyCategory的对象,我希望它永远不会碰撞任何东西,所以我将collisionBitMask设置为0,但我的玩家角色能够移动它而不是仅仅通过它。这似乎只是一个小问题,但在所有的诚实方面它只是一种明显的压力。任何建议都会很棒。与collisionBitMask发生故障

我的对象

contactLines = [SKSpriteNode spriteNodeWithImageNamed:@"contact-Lines"]; 
contactLines.hidden = NO; 
contactLines.physicsBody.dynamic = YES; 
contactLines.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:contactLines.size]; 
contactLines.position = CGPointMake(variaPlatform.position.x, variaPlatform.position.y + 30); 
contactLines.physicsBody.categoryBitMask = fContactEnemyCategory; 
contactLines.physicsBody.contactTestBitMask = fEnemyCategory; 
contactLines.physicsBody.collisionBitMask = 0; 
[self addChild:contactLines]; 

我的球员

_Hero = [SKSpriteNode spriteNodeWithTexture:i1]; 
_Hero.name = @"Hero"; 
_Hero.zPosition = 2; 
_Hero.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:_Hero.size]; 
_Hero.physicsBody.categoryBitMask = fPlayerCategory | fEnemyCategory; 
_Hero.physicsBody.contactTestBitMask = fPlatformCategory | fEnemyCategory | fScoreCategory | fMainPlatformCategory |fPitOfCertainDoomCategory; 
_Hero.physicsBody.collisionBitMask = fEnemyCategory | fPlatformCategory | fMainPlatformCategory; 
_Hero.physicsBody.usesPreciseCollisionDetection = YES; 
_Hero.physicsBody.affectedByGravity = YES; 
_Hero.physicsBody.dynamic = YES; 
_Hero.physicsBody.friction = 0.3; 
_Hero.physicsBody.linearDamping = 0.7; 
_Hero.physicsBody.allowsRotation = false; 
_Hero.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)); 
_Hero.position = CGPointMake(_Hero.position.x - 253, _Hero.position.y + 50); 
[self addChild:_Hero]; 

各自的类别

static const uint32_t fPlayerCategory = 0x1 << 0; 

static const uint32_t fContactEnemyCategory = 0x1 << 6; 
+1

您的玩家与敌人的接触面具属于同一类别(fEnemyCategory) – LearnCocos2D 2014-09-01 21:32:14

+0

@ LearnCocos2D我觉得真的很愚蠢 - 但是不管怎样,这一天都会因为你而得救! – Blank 2014-09-01 22:21:25

回答

0

我遇到了类似于你几周前面临的问题。 尝试设置physicsBody只有你已经添加了节点作为一个孩子。为你正在使用的每个节点做一个物理体。

+0

不幸的是,我仍然有这个问题,并且这样做会带来大量的其他对象错误。不过谢谢。 – Blank 2014-09-01 21:14:08