如何从PhysicsEditor使用.as导出的文件

时间:2014-06-15 20:12:30

标签: actionscript-3 flash flashdevelop nape

这个问题已经存在了很长时间,对我来说是赏金而且没有令人满意的解决方案。我删除了第一篇文章,而是发布了一个问题,可以快速回答是或否,所以我可以继续我的工作。

如果你可以在被“不是一个好问题”删除之前快速回答它。使用从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;

1 个答案:

答案 0 :(得分:0)

更新:

根据对此blog post的评论,听起来像Nape的最新版本已破坏与物理编辑器的兼容性。具体而言,正文对象上不再存在graphicgraphicUpdate属性。建议的解决方案是删除对这些属性的引用。

我无法对此进行测试,但您可以尝试更新楼层的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;
}