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()。