我有一个精灵,当它到达某个位置时会被删除:
if(sprite.getY()>=700){
enemyIterator.remove();
Pools.free(sprite);
}
我不想在删除之前保存精灵的最后位置,我尝试sprite.getX()
和sprite.getY()
但这些只有在精灵在游戏中时才可用。
答案 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;
}