2011-04-04 132 views
0

有一个球UIImage和桨UIImage。简单的球桨碰撞

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

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

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

注意:这明显发生在球以45度撞击矩形桨时。

回答

0

它可能是这样工作的,因为: 当球从侧面飞过时,碰撞前的一个模拟步骤在桨的顶部之下,但由于其X坐标太小(或太大)。

然后下一个模拟步骤发生,球碰撞桨,所以它的速度是颠倒的,但X速度仍然是相同的,所以球进一步进入桨。

然后下一个模拟步骤发生,球仍然在桨内,所以它的速度是颠倒的,但是x速度不变,所以它进一步进入桨,但沿着路上下跳动。

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

+0

谢谢..我似乎得到了你所说的...我会再次考虑它并回击你... – Ram 2011-04-06 05:41:16