我和朋友正在SpriteKit中对一些东西进行原型设计.这不是我朋友第一次使用它,但这是我的第一次.
我们可以简单地控制正方形.您可以在"地面"节点上来回运行,您可以触摸跳转按钮以"跳转".
对于质量,重力等给定的一组数字,如下
[self.physicsBody applyForce:CGVectorMake(0, 1500000)];
Run Code Online (Sandbox Code Playgroud)
在iPhone模式下在iPad4上运行时会导致正常的跳跃(几乎是一个小的兔子店)(应用程序现在只是iPhone),但在我的5S上跳跃大约高出20到40倍,在4S上跳跃就像高出100或200倍.("时间更高"是基于视觉观察的猜测,但iPad看起来很正常,5S看起来像超人跳跃,而4S看起来像超人吃了他的菠菜,他的妻子在跳之前就把它拿出来了)
所有设备上都运行完全相同的代码.我不确定在哪里看或者可能导致这种情况.
如果您即时应用它,您应该使用Incox而不是applyForce.关于applyForce,Apple docs表示
"加速度适用于单个模拟步骤(一帧)."
可能是该步骤的非常 小的时间差异导致大的差异,因为力仅在1帧上非常大.如果您使用的是applyForce,则应该在模拟的每个步骤中执行此操作,以保持在一段时间内施加的力.通常,跳跃的运动是在非常短的时间段内进行的,因此经常使用applyImpulse.
以下是Apple docs关于力量与冲动的另一个引用:
"根据施加力和处理模拟的下一帧之间经过的模拟时间量,施加一段力.因此,要对身体施加连续的力,您需要每次处理新帧时都要进行适当的方法调用.力通常用于连续效果.脉冲使身体的速度瞬间变化,与经过的模拟时间量无关.脉冲通常用于立即变化达到身体的速度."
| 归档时间: |
|
| 查看次数: |
1753 次 |
| 最近记录: |