简单的球桨碰撞

时间:2011-04-04 06:37:54

标签: uiimage collision-detection

有一个球UIImage和Paddle UIImage。

当球击中顶部和底部时碰撞工作正常,但是如果碰到桨的小侧面,则球穿过它并在桨内反弹并出来。

if (CGRectIntersectsRect(ball.frame, racquet_green.frame))
{
      ballVelocity.y = -ballVelocity.y;
}   

请告诉我一些建议或任何其他碰撞检查方法。这是简单的球拍问题

注意:当球以45度撞击矩形桨时,会发生这种情况。

1 个答案:

答案 0 :(得分:0)

它可能就是这样,因为: 当球从侧面飞过时,碰撞前的一个模拟步骤位于桨的顶部,但是id不会碰撞,因为它的X坐标太小(或太大)。

然后发生下一个模拟步骤,并且球与桨碰撞,因此其y速度反转,但x速度仍然相同,因此球进一步进入桨状。

然后下一个模拟步骤发生,并且球仍在桨内,因此其y速度反转,但x速度不变,因此它进一步进入桨状,但沿途一直上下跳动。

解决方案 - 检查桨叶的垂直和水平边缘是否发生碰撞。