当玩家在游戏中达到一定分数时,我只有一次难以进行等级变化。每次玩家得到一个非常烦人的新分数时它会不断变化。
//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时再次更改级别但是如果我这样做,似乎什么也没发生。
我做错了什么?
答案 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];
}