0

私はこれを何時間もデバッグしてきました。衝突の検出。以下のコードは正常に機能します。

while (numberOfTurns >= 0)                                      
            {   
        GObject collision = getElementAt(ball.getX(),ball.getY());
        }

ボールが画面上で衝突するグラフィカルオブジェクトを取得して返します。しかし、これは私がプログラムを設計したい方法ではありません。ただし、代わりに、次のように、衝突検出用の別の方法を作成します。

    while (numberOfTurns >= 0)                                      
        {   
        getCollidingObject();
        }

これがメソッドです、それはそれ自身を返すだけです

private GObject getCollidingObject()
{       
    return getElementAt (ball.getX(),ball.getY());
}

次に、それをこのプライベートインスタンス変数に割り当てます

private GObject collider = getCollidingObject();

だが!!!動作せず、nullを返すだけです。私が投稿した最初のコードスニペットは正常に機能します...ここで何が起こっているか知っている人はいますか?

4

1 に答える 1

2

getCollidingObject()の戻り値をプライベートインスタンス変数に割り当てていると言います。投稿したコードを使用すると、オブジェクトの構築時に1回だけ呼び出しが行われ、結果が必要になるたびに呼び出されるわけではありません。試す:

while (numberOfTurns >= 0)                                      
    {   
    GObject collision = getCollidingObject();
    }
于 2012-09-11T19:05:07.703 に答える