2014-02-28 53 views
1

的非透明部分我喜歡這裏的同樣的問題:SKSpriteKit, detect non-transparency parts的XCode Spritekit,碰撞與PNG

我的職位是從那裏刪除。我不知道爲什麼,在其他論壇上,這是一個雙重職位! 但是,好吧,如果你喜歡那樣。可憐的丹尼仍然沒有答案!

好吧,再次提出這個問題: 有兩個PNG文件與透明區域。就像丹尼黃的帖子一樣。 如果它們碰撞「 - (void)didBeginContact:(SKPhysicsContact *)contact」方法失敗。 但我們尋找的是他們只是在圖像的不透明區域進行拼合。

這裏是一個小的代碼剪斷:

... 
SKTexture *nyanTexture1 = [SKTexture textureWithImageNamed:@"test.png"]; 
nyanTexture1.filteringMode = SKTextureFilteringNearest; 
nyan = [SKSpriteNode spriteNodeWithTexture:nyanTexture1]; 
nyan.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:nyan.size.height/2]; 
nyan.physicsBody.dynamic = YES; 
nyan.physicsBody.allowsRotation = NO; 
... 
nyan.physicsBody.categoryBitMask = nyanKategorie; 
nyan.physicsBody.collisionBitMask = worldKategorie | tunnelKategorie; 
nyan.physicsBody.contactTestBitMask = worldKategorie | tunnelKategorie; 
... 
WasserFallTexture1 = [SKTexture textureWithImageNamed:@"Wasserstrahl1.png"]; 
SKSpriteNode* tunnel1 = [SKSpriteNode spriteNodeWithTexture:WasserFallTexture1]; 
tunnel1.position = CGPointMake(0, y); 
tunnel1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:tunnel1.size]; 
tunnel1.physicsBody.dynamic = NO; 
tunnel1.physicsBody.categoryBitMask = tunnelKategorie; 
tunnel1.physicsBody.contactTestBitMask = nyanKategorie; 
... 
[tunnel addChild:tunnel1]; 

我可以做,沒有Spritekit的不錯引擎。我也執行它,但我想知道一種方法來與SpriteKit引擎做到這一點。 我知道我可以改變「SKPhysicsBody」類型和區域,但是我正在尋找一個soloution女巫可以捕獲兩個PNG文件不透明區域之間的碰撞。

感謝, 山姆

回答

1

聽起來確實看到了正在運行的物理機構是你所需要的。 SKView上有一個物業叫做showsPhysics。設置爲YES,你可以看到你的精靈的物理實體在行動。