【问题标题】:AndEngine Box2D Extension - ScalingAndEngine Box2D 扩展 - 缩放
【发布时间】:2014-10-03 16:39:23
【问题描述】:

我是 AndEngine 和 Box2D 的新手。所以请多多包涵。

我创建了一个新项目,设置了 480x800 相机,添加了 32x32 条纹,在地球重力下创建了一个物理世界并删除了条纹。瞧,它确实下降了。但这对我来说似乎并不“自然”。太慢了。

然后我意识到重力以米 (m/s2) 为单位,而环境以像素为单位。米和像素之间的转换发生在哪里?在某个地方应该有一个幕后的假设。我有控制权吗?

Box2D 如何知道它是从距地面 100 米处(从远处观察,会出现非常缓慢的下降)还是在距地面 1 米处(从近距离观察,会显得非常缓慢)掉落条纹快)?

为了测试转换是否是真正的问题,我将重力乘以 10,它提高了“自然度”。但我认为应该有一种更复杂的方法将像素转换为米。

提前致谢。我真的很感谢你的 cmets。

【问题讨论】:

标签: android box2d andengine scale physics


【解决方案1】:

正如@iforce2d 所说的那样。在 AndEngine 中,默认值为 32,因此 32 像素被视为一米。将像素转换为米时,将像素除以该值。从米转换为像素时,乘以该值。您可以在 org.andengine.extension.physics.box2d.util.constants.PhysicsConstants 类中找到此值。

如果您没有指定自己的比率,那么该比率将用于PhysicsFactory.create... 方法。这些方法为您创建物理体,以像素为单位测量您的精灵大小并将米传递给 Box2D。它也用于PhysicsConnector 类构造函数。如果 32 不适合您,请使用您自己的值,但是您必须始终保持一致并每次都使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多