1

我创建了一个有重力和两个物体的空间:

var napeWorld:Space=new Space(new Vec2(0,500));
var ground:FlxNapeSprite = addBox(320, 480, 640, 20, BodyType.STATIC, FlxColor.BLUE);
var hero=addBox(320,60,20,20,BodyType.DYNAMIC, FlxColor.RED);

这是我的addBox()功能:

private function addBox(x:Float, y:Float, w:Float, h:Float,bodyType:BodyType, color:Int):FlxNapeSprite {
    var sprite:FlxNapeSprite = new FlxNapeSprite(x, y);
    sprite.makeGraphic(Math.ceil(w), Math.ceil(h), color);
    sprite.body.type = bodyType;
    sprite.body.space = napeWorld;
    //sprite.createRectangularBody(w, h, bodyType);
    sprite.setBodyMaterial();
    add(sprite);
    return sprite;
}

我在我的update()方法中调用 step :

override public function update():Void
{
    super.update();
    napeWorld.step(1/30);
}

我不明白为什么我的动态形状不会落在地上......

任何想法?

4

1 回答 1

1

因为您将其设置为带有BodyType.STATIC.

你需要BodyType.DYNAMIC让事情自己移动。

于 2015-02-18T07:56:47.067 回答