所以我使用简单的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语句只是不起作用而且没有任何反应。我究竟做错了什么。如果需要,我可以添加更多代码。
答案 0 :(得分:2)
&
是按位和运算符; &&
是合乎逻辑的,你想在这里使用。您的if语句实际上应该是:
if (score % 1000 == 0 && score > 0)
答案 1 :(得分: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 ;
答案 2 :(得分:0)
我同意andyvn22 - 你应该使用&&而不是&amp ;.但是,还有一个问题。
假设你得分= 999
计算差异后,差异= -5
您的分数将变为1004. 1004%1000将是4(不是零)
我认为你应该以某种方式改变你的状况,即使你跳过1000你仍然会提高速度。
答案 3 :(得分:0)
我不得不给予一点余地,所以'if(得分%1000 == 2&&得分> 999)'