我正在尝试使球从矩形桨的边缘反弹,到目前为止,我所做的就是使球从桨的顶部边缘反弹。但是,只要球碰到另一侧(右侧或左侧),它就会卡在桨中,并且不会反弹。

为了使球从球拍的顶部弹起,我使用了下面的简单代码:

// bounce ball off paddle
        if (object == paddle)
        {
                velocityY = -velocityY;
        }


谁能帮助我增强此代码,以便它可以检测出球是否碰到了桨的右侧或左侧,并使其反弹。

请注意,我正在使用C。

谢谢,

最佳答案

就像在碰撞后处理Y轴一样

velocityX = -velocityX


如果您想要“更精致”的东西,可以尝试制作类似

if (currentX + ball_radius >= MAX_WIDTH)
    velocityX = -velocityX;
if (currentY + ball_radius >= MAX_HEIGHT)
    velocityY = -velocityY;


点(currentX,currentY)代表球的中心。

关于c - 使Ball从C中的对象边缘反弹,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32667339/

10-12 14:53