2014-12-05 48 views
0

我創造的角色往往與意圖導致遊戲結束的障礙重疊。角色是flyCopter,它是組成整個角色的一組png。 blockTmp是由png組合構成的障礙。有沒有更好的方法來創建兩個對象之間的碰撞?

有時角色並沒有足夠的碰撞,你可以在沒有遊戲的情況下離開,但顯然它不應該重疊。當他們兩人立即相撞時,它應該是遊戲結束。這有點奇怪,有時它會在接觸時「死亡」,然後其他時候真的需要重疊。

謝謝

// CHARACTER碰撞

-(void)checkGameOver{ 
if(GAMESTART){ 
if(flyCopter.position.x >= CGRectGetMaxX(self.frame) - flyCopter.copterWidth/2 - 6){ 
    [self showOver]; 
} 

if(flyCopter.position.x <= CGRectGetMinX(self.frame) + flyCopter.copterWidth/2 + 6){ 
    [self showOver]; 
} 

[self compareCP:blockTmp1 :flyCopter]; 
[self compareCP:blockTmp2 :flyCopter]; 
if(flyCopter.position.y <= blockTmp1.position.y - 0 + blockTmp1.size.height + 0) 
if(flyCopter.position.x <= blockTmp1.position.x +20 + blockTmp1.size.width + 0) 

{ 
    [self compareCP:blockTmp3 :flyCopter]; 
    [self compareCP:blockTmp4 :flyCopter]; 
} 

[self compareCP:blockTmp5 :flyCopter]; 
[self compareCP:blockTmp6 :flyCopter]; 
if(flyCopter.position.y <= blockTmp5.position.y - 0 + blockTmp5.size.height + 0) 
if(flyCopter.position.x <= blockTmp5.position.x +20 + blockTmp5.size.width + 0) 

{ 
    [self compareCP:blockTmp7 :flyCopter]; 
    [self compareCP:blockTmp8 :flyCopter]; 
} 

[self compareCP:blockTmp9 :flyCopter]; 
[self compareCP:blockTmp10 :flyCopter]; 
if(flyCopter.position.y <= blockTmp9.position.y - 0 + blockTmp9.size.height + 0) 
    if(flyCopter.position.x <= blockTmp9.position.x +20 + blockTmp9.size.width + 0) 

{ 
    [self compareCP:blockTmp11 :flyCopter]; 
    [self compareCP:blockTmp12 :flyCopter]; 
    } 
} 
} 


-(void)compareCP:(SKSpriteNode*)flyCopters : (SKSpriteNode*)blocks{ 
if(flyCopters){ 
    if ([blocks intersectsNode:flyCopters]) { 
     [self showOver]; 
    } 
} 
} 

回答

0

使用Box2D的更好的碰撞。

相關問題