iPhone Pong高级偏转角

iPhone Pong高级偏转角,iphone,objective-c,collision-detection,Iphone,Objective C,Collision Detection,我目前正在为iPhone开发一款简单的乒乓球游戏。目前使用CGRectIntersectsRect进行碰撞检测,至于球撞击桨叶时的偏转,我只是将球的速度乘以-1(从而反转球的方向) 我想做的是,当球碰到桨叶时,它会检查球离桨叶中心有多远,并且当球离桨叶中心越远时,偏转角度越大。(例如,在这种情况下,球将以90度的角度向后偏转,无论它来自何处,只要它击中桨叶的中心) 我该怎么做呢 任何帮助都将不胜感激 谢谢。您给我们的是参考点(中心和边缘)。我们需要的是一条基准线,用来测量新的角度。此外,你所说的

我目前正在为iPhone开发一款简单的乒乓球游戏。目前使用CGRectIntersectsRect进行碰撞检测,至于球撞击桨叶时的偏转,我只是将球的速度乘以-1(从而反转球的方向)

我想做的是,当球碰到桨叶时,它会检查球离桨叶中心有多远,并且当球离桨叶中心越远时,偏转角度越大。(例如,在这种情况下,球将以90度的角度向后偏转,无论它来自何处,只要它击中桨叶的中心)

我该怎么做呢

任何帮助都将不胜感激


谢谢。

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

我猜你要问的是一种计算出射角的方法,这样它就只是它击中桨的位置的函数。如果它撞到桨叶中心,则无论入射角度如何,它都会以与桨叶成90度角的角度反弹。如果撞击到桨叶边缘,则无论入射角度如何,它都将以45度角反弹到桨叶上

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

假设:桨叶形状为矩形

  • 让我做桨的长度
  • 设K为常数,使得L/(2*K)=1/sqrt(2)
  • 设D为距桨叶中心的距离(可能为+或-)
θ=pi/2-asin(D/K)

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


希望这有帮助。

坐标澄清点。。。90度到什么程度。。。入射角。。。桨。。。划桨的正常状态?在物理学中,当我们谈论光学和碰撞时,我们通常指的是与法线相比的角度。然而,考虑到你在问题中提出的问题,这样的参考框架对我来说没有意义。90度是当球击中桨叶的确切中心时的偏转角度的例子。这就是我想要球的表现;使球在撞击桨叶后偏转,偏转角度参照桨叶中心。如果球碰到桨的中心,它会偏转90度,离桨的中心越远,偏转角度就会增加,比如说,如果球碰到桨的左侧,我希望它偏转45度。是的,我想要的是设置它,使传出角度与传入角度无关,但取决于它落在桨上的位置。我知道从物理学的角度看这毫无意义,但我想让它变得有趣。谢谢你的帮助,我想这正是我所需要的。