我已经调试了几个小时。检测碰撞。此代码下面的工作正常。
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();
}