我做了一个游戏,玩家可以根据他们取出的敌人类型获得3或5分。我想增加每次玩家得分达到50的倍数时产生的最大敌人数。
这是我到目前为止所得到的(位于调整分数的方法中):
if (self.score % 50 == 0)
{
if (self.maxEnemiesA <= 20)
{
self.maxEnemiesA++;
}
}
代码检测分数何时达到50的倍数,但由于分数是两个不同增量的组合,因此可能会超过该目标。
e.g。如果分数为148然后增加5,则将跳过150并变为153.
不是检查分数是否为50的倍数,而是如何检测分数传递 50的倍数的那一刻?
答案 0 :(得分:1)
简单:
// Let BASE_ENEMIES be the starting number of enemies, when the score is
// less than 50.
self.maxEnemiesA = MIN(20, BASE_ENEMIES + self.score / 50);
答案 1 :(得分:0)
好吧,我宁愿注册你增加数字的点数。在变量中设置当前分数,并检查它是否增加了50以上
if (self.score >= previousScore + 50)
{
previousScore = self.score;
if (self.maxEnemiesA <= 20)
{
self.maxEnemiesA++;
}
}
答案 2 :(得分:0)
在您做出任何增量之前和之后检查分数。
NSInteger oldStep = self.score / 50;
// Code that increments self.score as needed
NSInteger newStep = self.score / 50;
if (newStep > oldStep) {
// The score has increased into a new multiple of 50
}
示例:如果分数目前为148,则oldStep
将为2.如果您将分数增加到153,newStep
将为3。