2014-09-21 68 views
0

嗨即时制作一个游戏中,我可以很容易地与sklabelnode得分,即使我做了如何获得奖励时,用户达到25,50点等,但是当我达到50和> 50我只得到青铜器不是银色和金色等等,我犯了一个错误。精灵套件游戏中的分数奖励xcode

@implementation MyScene { 
int _gameScore; 
SKNode *_gameLayer;} 

-(void)didBeginContact:(SKPhysicsContact *)contact 



SKSpriteNode *coin = nil; 
    if (_gameScore >= 25) { 

     coin = [SKSpriteNode spriteNodeWithImageNamed:@"bronze"]; 
    } else if (_gameScore >= 50) { 

     coin = [SKSpriteNode spriteNodeWithImageNamed:@"silver"]; 
    }else if (_gameScore >= 100) { 

     coin = [SKSpriteNode spriteNodeWithImageNamed:@"gold"]; 
    } 
    else { 
     //blank coin 
     coin = [SKSpriteNode spriteNodeWithImageNamed:@"noreward"]; 
    } 

    if (coin != nil) { 

     coin.position = CGPointMake(self.size.width/2, self.size.height/2); 
     coin.zPosition = 201; 
     [coin setSize:CGSizeMake(100, 100)]; 

     [_gameLayer addChild:coin]; 
    } 
+0

当我添加,如果所有的奖励,它只显示“noward” – anjani 2014-09-21 05:38:47

回答

3

你现在的样子,你会看到你的“青铜”硬币随时_gameScore大于或等于25。由于50100也大于25和你检查他们是在检查后25,你永远不会看到“白银”或“黄金”

由于您使用>=,您的检查应该去从最高到最低:

if (_gameScore >= 100) { 

    coin = [SKSpriteNode spriteNodeWithImageNamed:@"gold"]; 
} else if (_gameScore >= 50) { 

    coin = [SKSpriteNode spriteNodeWithImageNamed:@"silver"]; 
} else if (_gameScore >= 25) { 

    coin = [SKSpriteNode spriteNodeWithImageNamed:@"bronze"]; 
} else { 
    //blank coin 
    coin = [SKSpriteNode spriteNodeWithImageNamed:@"noreward"]; 
} 
+0

哦,它是真的只是一个逻辑谢谢:) – anjani 2014-09-21 06:03:21