我正在建立一个基于box2d的简单平台游戏。
玩家被制作为具有两个传感器(底部和顶部)的ChainShape动态多边形对象。
地板物体是一个简单的运动箱。
问题在于,由于某种原因,玩家的身体永远不会完全摔倒在地板上 - 它们之间总是有几个像素,使得玩家精灵看起来像是在地板上方飞行而不是站在地板上。
这是一些放大的截图:1)玩家跳跃(身体看起来很好):
2)玩家站在地板上(玩家身体底部出现一些东西,防止它与地板接触):
运动体正确接触地板。
可能是什么问题?
答案 0 :(得分:0)
我在这里找到了答案http://www.iforce2d.net/b2dtut/gotchas#smallgap
我每箱2个单位有250像素,所以其中的0.005个等于1.25像素。除此之外,似乎这个linearSlope来自两个灯具,最终导致2-3像素间隙。
在改变世界之后(我必须将250像素增加到5个单位,增加重力5倍并增加所有水平速度也是5倍以获得相同的游戏感觉)问题似乎得到解决。