iPhone Pong高级偏转角度

时间:2010-04-24 11:33:42

标签: iphone objective-c collision-detection

我目前正在为iPhone开发一款简单的Pong游戏。目前使用CGRectIntersectsRect进行碰撞检测以及当球击中球拍时球的偏转,我只是将球速乘以-1(因此反转球的方向)。

我要做的是做到这样,当球击中球拍时,它会检查球离球拍中心的距离是多少,并且当球离球的距离越远时,球的距离越大桨的中心。 (例如,在这种情况下,无论球从哪里来,球都会向后偏转90度,只要它击中桨的中心)

我怎么想这样做?

非常感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

您给我们的是参考点(中心和边缘)。我们需要的是用于测量新角度的参考线。另外,你所说的并不一致,因此没有意义。

我猜你所问的是一种计算出射角的方法,这只是它在桨上击中的函数。如果它碰到桨叶中心,则无论进入角度如何,它都会以与桨叶成90度的角度反弹。如果它碰到桨叶边缘,那么无论入射角度如何,它都会以与桨叶成45度的角度反弹。

如果是这样,那么下面应该这样做(这不是唯一的方法)。

假设:桨形是一个矩形。

  • 设L为桨的长度。
  • 设K为常数,使得L /(2 * K)= 1 / sqrt(2)。
  • 设D是距桨叶中心的距离(可以是+或 - )。

theta = pi / 2 - asin(D / K);

这应该给你一个相对于桨的角度。

希望这有帮助。