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;
您的玩家与敌人的接触面具属于同一类别(fEnemyCategory) – LearnCocos2D 2014-09-01 21:32:14
@ LearnCocos2D我觉得真的很愚蠢 - 但是不管怎样,这一天都会因为你而得救! – Blank 2014-09-01 22:21:25