我正在开发一个简单的游戏边缘碰撞问题。它是关于在屏幕上投掷硬币。我使用下面的代码来检测边缘碰撞,这样我就可以让硬币从屏幕边缘反弹。
除了一个案例外,一切都按照我想要的方式运作。当硬币击中左边缘并进入右边缘时,系统不会检测到碰撞。其余的情况完美无缺,比如首先击中右边缘然后再击中左边缘。
有人可以提出解决方案吗?
public void onMove(float dx, float dy) {
coinX += dx;
coinY += dy;
if (coinX > rightBorder) {
coinX = ((rightBorder - coinX) / 3) + rightBorder;
}
if (coinX < leftBorder) {
coinX = -(1 * coinX) / 3;
}
if (coinY > bottomBorder) {
coinY = ((bottomBorder - coinY) / 3) + bottomBorder;
}
invalidate();
}