保存精灵位置

时间:2015-06-12 10:26:15

标签: java libgdx position sprite

我有一个精灵,当它到达某个位置时会被删除:

 if(sprite.getY()>=700){
      enemyIterator.remove();
      Pools.free(sprite);
}

我不想在删除之前保存精灵的最后位置,我尝试sprite.getX()sprite.getY()但这些只有在精灵在游戏中时才可用。

2 个答案:

答案 0 :(得分:1)

基于提供的附加信息。 Sprite方法getX()getY()返回浮点值。因此,您可以将这些方法返回的值分配给float类型的变量,以供日后使用。

float lastX, lastY;

if(sprite.getY()>=700){
  lastX = sprite.getX();
  lastY = sprite.getY();
  enemyIterator.remove();
  Pools.free(sprite);
}

System.out.println("Removed sprite coordinates where: " + lastX + ", " + lastY);

答案 1 :(得分:0)

也许你无法获得精灵所在的最后位置,但你可以保存你在这个框架中绘制的最后位置,你总是需要在绘制每一帧时设置一个位置,如果发生了某些事情,请抓住最后一个位置,例如。

private Rectangle bordes;

public Ball(float x, float y,int isMoved) {
    ..........
        texture = new Texture(Gdx.files.internal("bola.png"));
        bordes = new Rectangle(x, y, texture.getWidth(), texture.getHeight());
    ..........
    }

public void draw(SpriteBatch batch) { 
    //where i draw my last texture or sprite  was bordes.x bordes.y in this frame
        batch.draw(texture, bordes.x, bordes.y, texture.getWidth(), texture.getHeight());
    }

public vois getLastPosition(){

lastX = bordes.x;
lastY = bordes.y;

}