我正在写一个乒乓球游戏,游戏中有一个球拍。球应该从墙上和桨上弹起。但是球只有有时会从墙上反弹。以下是使球反弹的代码:
elif ball_x == 785:
dbx = -dbx
elif ball_y == 585:
dby = -dby
elif ball_y == 15:
dby = -dby
elif ball_x == 60 and ball_y > rect1_y - 110 and ball_y < rect1_y + 110:
dbx = -dbx
我该如何解决这个问题
Tags:
与其检查
ball_x == 785
,不如检查ball_x >= 785
。如前所述,代码仅在球的x坐标正好为785时使球反弹。如果你的球每帧移动超过一个像素(很可能是这样),那么大部分时间它会“跳”到785线上而不会反弹当球碰到窗口的左侧或右侧时,必须反转
dbx
。当球触顶或触底时,你必须反转。但是,如果球的速度的轴对齐分量不是精确的1,那么球就不会精确地接触到边界。您必须计算坐标是否为
<=
,>=
,而不是==
我的建议是:
相关问题 更多 >
编程相关推荐