我正在尝试制作一个破砖游戏,但在碰撞检测方面遇到了一些问题。如果您曾经玩过碎砖机,您就会知道在桨上,如果球向左移动并且您击中顶部的左侧,那么它会继续向右移动。虽然,在这种情况下,如果你在右侧击球,那么球就会改变方向。而且,如果你在桨的侧面击打它,它会在 Y 轴上反弹。由于我不知道如何做桨的顶部,所以我无法向您展示代码,因为我没有任何代码:) 这是我用于侧面的代码:
Rectangle rect1 = new Rectangle((int) paddleDir, 570, imsLoader.getImage("paddle1").getWidth(), imsLoader.getImage("paddle1").getHeight());
Rectangle rect2 = new Rectangle((int) ballX, (int) ballY, imsLoader.getImage("ball").getWidth(), imsLoader.getImage("ball").getHeight());
if (rect1.intersects(rect2))
{
if (rect1.x == rect2.getMaxX() || rect1.getMaxX() == rect2.x)
{
ballVX = -ballVX;
clipsLoader.play("pattleHit", false);
}
else
{
ballVY = -ballVY;
ballY += 0.05;
clipsLoader.play("pattleHit", false);
}
}
发生的情况是,当球在侧面被击中时,它正好穿过整个地方的桨,当它到达另一端时,要么上升要么下降!