2014-09-01 100 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