Физика затылка: проблема столкновения (перемещение по плиткам) - PullRequest
0 голосов
/ 16 октября 2018

Есть персонаж, когда при перемещении по одной плитке к другой иногда персонаж либо перепрыгивает через точку встречи полигонов плитки, либо полностью застревает и больше не может двигаться в направлении, в котором он двигался, пока не сделает шаг назад.

(видео выпуска: 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>));
...