我已经调试了几个小时。检测碰撞。此代码下面的工作正常。

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。我发布的第一个代码段工作正常……任何人都知道这里发生了什么?

最佳答案

您说要将getCollidingObject()的返回值分配给私有实例变量。使用您发布的代码,该调用仅在构造对象时进行一次,而不是每次都需要结果时进行。尝试:

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

09-27 17:32