我正在开发的一个简单游戏存在边缘碰撞问题。它关于在屏幕上扔硬币。我正在使用下面的代码来检测边缘碰撞,这样我就可以让硬币从屏幕边缘反弹。
除了一种情况外,一切都按我的意愿工作。当硬币撞击左边缘并转到右边缘时,系统不会检测到碰撞。其余的情况都很好,比如先打右边缘,然后再打左边缘。
有人可以提出解决方案吗?
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();
}