Физика затылка: проблема столкновения (перемещение по плиткам)
Есть персонаж, когда его перемещают по одной плитке на другую, иногда персонаж либо перепрыгивает через точку встречи полигонов плитки, либо полностью застревает и больше не может двигаться в направлении, в котором он шел, пока не сделает шаг назад.
(видео выпуска: https://www.youtube.com/watch?v=wLAAHyinOVE)
(Интерактивная демонстрация проблемы: http://snkygames.com/InputSceneTest)
Кто-нибудь еще встречался с этим вопросом? Любые решения предложения.
Проблема все еще возникает, если я разрешаю вращение тела. Проблема все еще возникает, если я использую прямоугольник в качестве многоугольника вместо круга.
Код:
//character
//material: elasticity=0.650, frictionDynamic=0.570, frictionStatic=1.200, density=1.000, frictionRolling=0.000
<body>.shapes.add(new Circle(16, null, <material>));
var vel:Vec2 = <body>.velocity;
<body>.velocity = Vec2.weak(vel.x + +/-2000.000 * 0.020, vel.y + 0.000);
//nape
<gravity> = new Vec2(0.000, 400.000);
<space>.step(***, 10, 10);
//rectangle tile
//material: elasticity=0.000, frictionDynamic=1.000, frictionStatic=1.000, density=1.000, frictionRolling=0.000
<body>.shapes.add(new Polygon(Polygon.box(<width>, <height>), <material>));