我正在使用C ++创建用于大学项目的Pong游戏。但是,我用于检查顶屏和底屏与球的碰撞的代码在90%的时间内都有效。多数情况下,球会正确弹跳,有时球会在屏幕边缘来回夹击和弹跳,有时球会在屏幕上右移,我不确定为什么。
if (ball->yPos() + ball->height() > game_height || ball->yPos() < 0)
{
ball_direction.y *= -1;
}
这是控制与球和顶/底壁碰撞的代码段。该代码检查球的位置是否超出边界,然后将我的ball_direction向量在y轴上乘以-1来创建反弹效果。 这在大多数情况下都有效,但是有时它决定不起作用,我不知道为什么! 如果您需要更多代码,请让我知道,我仍然对这一切还很陌生。