我是AndEngine和Box2D的新手。请耐心等待。
我创建了一个新项目,设置了一个480x800相机,增加了一个32x32条纹,在地球引力下创建了一个物理世界并丢弃了条纹。瞧,它下降了。但这对我来说似乎并不“天生”;它太慢了。
然后我意识到重力以米(m / s2)为单位,而环境以像素为单位。米和像素之间的转换在哪里?某处幕后应该有一个假设。我有控制权吗?
Box2D如何知道它是否从地面100米处掉落条纹(并从距离看起来非常缓慢的距离观察)或高出地面1米(从近距离观察它看起来非常接近快)?
为了测试转换是真正的问题,我将引力乘以10,它改善了“自然性”。但我认为应该有一种更复杂的方法将像素转换为米。
提前致谢。我非常感谢你的评论。
答案 0 :(得分:0)
正如@ iforce2d所说的那样评论。在AndEngine中,默认值为32,因此32像素被认为是1米。将像素转换为米时,将像素除以此值。从米转换为像素时,乘以此值。您可以在org.andengine.extension.physics.box2d.util.constants.PhysicsConstants
课程中找到此值。
如果您没有指定自己的比例,则会在PhysicsFactory.create...
方法中使用该比率。这些方法为您创建物理主体,以像素为单位测量精灵大小并将米传递给Box2D。它也用在PhysicsConnector
类构造函数中。如果32不适合你,请使用你自己的价值,但是你必须保持一致并且每次都使用它。