2011-04-04 136 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