【发布时间】:2016-05-29 00:20:10
【问题描述】:
所以我的身高是self.frame.height,它返回 736 与 iPhone 6s 的预期一样。如何将此值转换为米以与physicsWorld单位系统保持一致?
【问题讨论】:
标签: ios swift sprite-kit
所以我的身高是self.frame.height,它返回 736 与 iPhone 6s 的预期一样。如何将此值转换为米以与physicsWorld单位系统保持一致?
【问题讨论】:
标签: ios swift sprite-kit
一米大约是 135 点。
一个物理体在 9.8m/s 的重力下从静止状态下落,在 1.00806862953687s (1.01s) 内移动了 660 个点,速度为 1342.8162841796875m/s (1342.82)。
计算到小数点后 2 位,我们可以使用行进距离和速度等式通过 2 种不同的计算来计算每米的点数:
利用v=u+at (u=0, a=9.8, t=1.01s),我们可以计算出1.01s后,v为1.01 * 9.8 = 9.90m/s。物理体的速度是 1342.85,因此 9.90m/s = 1342.82 点/s 所以 1m = 135.6 点。
或者,使用 s=ut+½at²,计算时间 t 之后的行进距离,我们得到 s = 0.5x9.8x1.01 = 4.95m。因此 4.95m = 660 点; 1m = 133.3 点。
如果您完全精确地进行数学运算,您将得到 137 分。
使用大约 2 秒后的时间,加速度公式为 133.4 点/米,距离公式为 133.7 点/米
奇怪的是,SKPhysicsBody 类引用将速度属性描述为以米/秒为单位,但它似乎以每秒点数为单位。
【讨论】:
你知道重力是 9.8 m/s^2,所以拿一个物体,把它放在空中,测量 1 秒后行进的距离。那你就知道了
X points/sec = 9.8 meters/1^2X points/1 = 9.8 meters/1^2X points = 9.8 meters/1X points = 9.8 meters
最终答案:X/9.8 points = 1 meter
【讨论】:
SKPhysicsBody 类的area 属性的documentation 指出,Sprite Kit 物理世界中的 1 米对应于屏幕上的 150 个点。
【讨论】: