COCOS2D在达到分数时改变等级的最佳方法

时间:2011-10-02 06:27:11

标签: cocos2d-iphone

当玩家在游戏中达到一定分数时,我只有一次难以进行等级变化。每次玩家得到一个非常烦人的新分数时它会不断变化。

//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(得分> = 600&&得分< 1000)然后使用新的if语句告诉它在得分> = 2000时再次更改级别但是如果我这样做,似乎什么也没发生。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果您可以控制级别和级别上的最大上限,则执行以下操作。

-(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];
}