Я пишу свой собственный рендерер для box2dweb и решил использовать pixi.js.
Я могу отображать прямоугольники, но только если они не повернуты - если они повернуты, анимация испорчена. Выглядит это так (один слева — отладочный рендерер от box2d, один справа — мой): http://scr.hu/0ozr/o552x
Я знаю, что мне нужно настроить опору для графического объекта в pixi, но я не знаю, как получить доступ к координатам точки, вокруг которой вращается поле из box2d.
Я думаю, мне нужно использовать контактное ограничение какой-то формы, но как мне получить к нему доступ?
Это часть кода, который создает графический объект pixi для многоугольника: (Мне нужно перевести все вершины в систему координат с началом в левом верхнем углу ограничивающей рамки многоугольника, потому что PIXI использует такую систему координат).
getModel : function(body) {
var that = this;
var model = new PIXI.Graphics();
model.beginFill(0xFFFFFF);
var box = physHelpers.getBoundingBox(body);
model.position.x = box.x * that.scale;
model.position.y = box.y * that.scale;
var vertices = physHelpers.getTranslatedVertices(body);
model.moveTo(vertices[0].x * that.scale, vertices[0].y * that.scale);
for(var i = 1 ; i < vertices.length ; i++){
model.lineTo(vertices[i].x*that.scale, vertices[i].y*that.scale);
}
model.pivot = new PIXI.Point(box.width/2,model.height/2);
model.rotation = body.GetBody().GetAngle();
model.endFill();
return model;
}