我正在为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;
}
答案 0 :(得分:1)
所以现在我可以使用box2d的身体位置而不转换到左上角开始渲染。