【问题标题】:How to get scene height in meters (swift)?如何以米为单位获得场景高度(swift)?
【发布时间】:2016-05-29 00:20:10
【问题描述】:

所以我的身高是self.frame.height,它返回 736 与 iPhone 6s 的预期一样。如何将此值转换为米以与physicsWorld单位系统保持一致?

【问题讨论】:

    标签: ios swift sprite-kit


    【解决方案1】:

    一米大约是 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 类引用将速度属性描述为以米/秒为单位,但它似乎以每秒点数为单位。

    【讨论】:

    • 看起来 - 疯狂 - 速度不是以速度(即 m/s)的形式给出的。你们知道这种奇怪的情况是否仍然存在吗???
    • 糟糕——直到现在才看到这条评论。我不知道,但可能会再次测试它。请记住,虽然每秒点数 (p/s) 与每米/秒的速度单位一样有效。
    • 正确@steveives - 它肯定是一个有效的计量单位。但是地球上的每个物理引擎(包括 Box,Apple 是一个端口)当然使用实际距离(米或英尺:FWIW 我不知道任何使用帝国的),而不是点!奇怪的东西!
    【解决方案2】:

    你知道重力是 9.8 m/s^2,所以拿一个物体,把它放在空中,测量 1 秒后行进的距离。那你就知道了 X points/sec = 9.8 meters/1^2
    X points/1 = 9.8 meters/1^2
    X points = 9.8 meters/1
    X points = 9.8 meters
    最终答案:
    X/9.8 points = 1 meter

    【讨论】:

      【解决方案3】:

      SKPhysicsBody 类的area 属性的documentation 指出,Sprite Kit 物理世界中的 1 米对应于屏幕上的 150 个点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-31
        相关资源
        最近更新 更多