Cocos2d iphone COCOS2D达到分数时更改级别的最佳方法

Cocos2d iphone COCOS2D达到分数时更改级别的最佳方法,cocos2d-iphone,Cocos2d Iphone,我有一些困难,使水平改变只有一次,当球员已经达到一定的分数在游戏中。每当球员们得到一个新的分数时,它就会不断地变化,这很烦人 //Change the level if(score >= 600){ level = level+1; [levellabel setString:[NSString stringWithFormat:@"%d",level]]; id ScaleU

我有一些困难,使水平改变只有一次,当球员已经达到一定的分数在游戏中。每当球员们得到一个新的分数时,它就会不断地变化,这很烦人

//Change the level
        if(score >= 600){

                level = level+1;
                [levellabel setString:[NSString stringWithFormat:@"%d",level]];
                id ScaleUp = [CCScaleTo actionWithDuration:0.3 scale:14.0 ];
                id ScaleDown = [CCScaleTo actionWithDuration:0.3 scale:1.0 ];
                [levellabel runAction:[CCSequence actions:ScaleUp, ScaleDown, nil] ];
        }
我还尝试将if语句设置为if(score>=600&&score=2000),但如果这样做,似乎什么也不会发生


我做错了什么?

如果您对标高进行了控制,并在标高上设置了最大上限,请执行以下操作

-(void)addLevel
    {
    level = level+1;
                    [levellabel setString:[NSString stringWithFormat:@"%d",level]];
                    id ScaleUp = [CCScaleTo actionWithDuration:0.3 scale:14.0 ];
                    id ScaleDown = [CCScaleTo actionWithDuration:0.3 scale:1.0 ];
                    [levellabel runAction:[CCSequence actions:ScaleUp, ScaleDown, nil] ];
    }
    -(void)newScore
    {  
       int target = 0;
       switch(level):
       {
       case 1:
          target = 600;
       break;
       case 2:
          target = 1000;
       break;
       case 3:
           target = 2000;
       break;
       }

       if(score>=target)
       [self addLevel];
    }
如果其无穷大且遵循标准公式,在本例中,每1000分增加一级,则应为:

-(void)addScore
{
   int nxtLvl = level +1;

   if(score>=1000*nxtLvl)
   [self addLevel];
}

感谢您的快速回复!我使用了第二种选择,效果很好:Dso您对每个级别都有自定义分数?不是“标准”公式?老实说…我还没有决定。到目前为止,我只是每10000分更改一个级别。