0

因此,当达到分数时,我使用一个简单的 if 语句来提高对象的速度。我使用了一个非常简单的 if 语句,它不起作用。在这种情况下,“pigSpeed”控制对象的速度。

    float difference = (self.view.bounds.size.height/4) - flyingPig.center.x; 

    score += -(int)difference;

    if (score % 1000 == 0 & score > 0)
    {
        pigSpeed++;
        NSLog(@"pigfaster");
    }

我知道分数可以正常工作,就像它显示的那样,但是 if 语句不起作用,什么也没有发生。我究竟做错了什么。如果需要,我可以添加更多代码。

4

4 回答 4

2

&是按位与运算符;&&是合乎逻辑的,你打算在这里使用。您的 if 语句实际上应该是:

if (score % 1000 == 0 && score > 0)
于 2012-09-20T19:19:29.700 回答
1

除了@victor ronin 所说的话......

float difference = ( self.view.bounds.size.height / 4.0f ) - flyingPig.center.x; 

int newScore = score + difference ;
if ( newScore > 0 && ( newScore / 1000 > score / 1000 ) )
{
    // did thousands place increment?
    ++pigSpeed;
}

score = newScore ;
于 2012-09-20T19:31:38.263 回答
0

我必须留出一点余地,所以“如果(分数 % 1000 == 2 && 分数 > 999)”

于 2012-09-22T00:41:23.573 回答
0

我同意 andyvn22 - 你应该使用 && 而不是 &。然而,还有一个问题。

假设您的分数 = 999

在你计算差异之后,它的差异 = -5

您的分数将变为 1004。1004 % 1000 将是 4(不是零)

我认为你应该以某种方式改变你的条件,即使你跳过 1000,你仍然可以提高速度。

于 2012-09-20T19:23:44.520 回答