0

我正在开发的一个简单游戏存在边缘碰撞问题。它关于在屏幕上扔硬币。我正在使用下面的代码来检测边缘碰撞,这样我就可以让硬币从屏幕边缘反弹。

除了一种情况外,一切都按我的意愿工作。当硬币撞击左边缘并转到右边缘时,系统不会检测到碰撞。其余的情况都很好,比如先打右边缘,然后再打左边缘。

有人可以提出解决方案吗?

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();
}
4

0 回答 0