Java 移动组时libgdx坐标错误

Java 移动组时libgdx坐标错误,java,libgdx,scene2d,Java,Libgdx,Scene2d,考虑以下代码段: class Level implements Screen{ Stage stage; Group spaceInvaderGroup; public Level(){ stage = new Stage(new FitViewport(120, 200)); spaceInvaderGroup = new Group(); spaceInvaderGroup.addActor(new SpaceIn

考虑以下代码段:

class Level implements Screen{

    Stage stage;
    Group spaceInvaderGroup;

    public Level(){
        stage = new Stage(new FitViewport(120, 200));
        spaceInvaderGroup = new Group();

        spaceInvaderGroup.addActor(new SpaceInvader);
        spaceInvaderGroup.addActor(new SpaceInvader);
        spaceInvaderGroup.addActor(new SpaceInvader);
        spaceInvaderGroup.addActor(new SpaceInvader);
    }

    public void render(){
        spaceInvaderGroup.moveBy(0.1F,0);
        stage.act();
        stage.draw();
    }

}

class SpaceInvader extends Actor{

    private Sprite sprite;
    private Vector2 stageCoords;

    SpaceInvader(){
        sprite = new Sprite;
        //set Textures of sprite here
        //bounds are set here using SI units        
    }

    @override
    public void draw(Spritebatch batch, float parentAlpha){
        batch.draw(sprite);
        super.draw();
    }

    @override
    public void act(){
        setGlobalPosition();
        sprite.setPosition(stageCoords.x, stageCoords.y);   
        super.act();
    }

    private void setGlobalPosition() {   
        stageCoords = localToStageCoordinates(new Vector2(0, 0));
    }

}

我想用libgdx制作一个太空入侵者游戏。由于太空入侵者以协调的方式移动,我决定将他们分为
,并使用
moveBy
方法移动该组。为了绘制太空入侵者,我获取他们的
舞台坐标
,并使用舞台坐标绘制精灵。问题是,工作台坐标不正确。我的问题是,在同一时间从不同群体中吸引演员的正确方法是什么?我的方法正确吗?首先将所有局部坐标转换为舞台坐标,如果正确,为什么我的结果是错误的?

为什么使用演员有精灵。使用Image代替它,Image是一个具有绘图属性的参与者吗?在setGlobalPosition()方法中没有使用localX和localY。你不能改变精灵的位置,不是天生的演员。每次在setGlobalPosition()中返回相同的getX()和getY()。