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

@victorroninが言ったことに加えて...

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

andyvn22に同意します-&の代わりに&&を使用する必要があります。ただし、もう1つ問題があります。

スコア=999だとしましょう

差を計算した後、差= -5

あなたのスコアは1004になります。1004%1000は4になります(ゼロではありません)

1000を超えてもスピードが上がるようにコンディションを変えてみるべきだと思います。

于 2012-09-20T19:23:44.520 に答える
0

少し余裕を持たせなければならなかったので、'if(score%1000 == 2 && score> 999)'

于 2012-09-22T00:41:23.573 に答える