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()私有实例变量。使用您发布的代码,该调用仅在构建对象时进行一次,而不是每次您想要结果时。尝试:

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