这个问题已经存在了很长时间,对我来说是赏金而且没有令人满意的解决方案。我删除了第一篇文章,而是发布了一个问题,可以快速回答是或否,所以我可以继续我的工作。
如果你可以在被“不是一个好问题”删除之前快速回答它。使用从PhysicsEditor到Nape的自定义形状与使用Box2D进行操作相同? (ofc更改语法)
如果你可以看看那个链接然后说它是Nape中的同一个过程,那将是值得的。
我问这个是因为我发现Box2D教程到目前为止更容易理解。
public var floor:Body;
floor = new Body(BodyType.STATIC);
var floorShape:PhysicsData = new PhysicsData();
floor.shapes.add(floorShape); // Error: Implicit coercion of a value of type PhysicsData to an unrelated type nape.shape:Shape.
floor.space = space;
答案 0 :(得分:0)
更新:
根据对此blog post的评论,听起来像Nape的最新版本已破坏与物理编辑器的兼容性。具体而言,正文对象上不再存在graphic
和graphicUpdate
属性。建议的解决方案是删除对这些属性的引用。
我无法对此进行测试,但您可以尝试更新楼层的createBody
方法,如下所示:
public static function createBody(name:String /*,graphic:DisplayObject=null*/):Body {
var xret:BodyPair = lookup(name);
//if(graphic==null) return xret.body.copy();
var ret:Body = xret.body.copy();
//graphic.x = graphic.y = 0;
//graphic.rotation = 0;
//var bounds:Rectangle = graphic.getBounds(graphic);
//var offset:Vec2 = Vec2.get(bounds.x-xret.anchor.x, bounds.y-xret.anchor.y);
//ret.graphic = graphic;
/*
ret.graphicUpdate = function(b:Body):void {
var gp:Vec2 = b.localToWorld(offset);
graphic.x = gp.x;
graphic.y = gp.y;
graphic.rotation = (b.rotation*180/Math.PI)%360;
}
*/
return ret;
}