删除精灵Libgdx Java

时间:2014-09-27 19:26:02

标签: java android libgdx sprite

所以我有一个与另一个精灵相交的精灵,当发生这种情况时,我想删除第一个精灵,这样就无法看到它或与之交互。 我正在绘制一个纹理,然后在同一个地方绘制一个矩形,以便我可以与矩形进行交互。我也可以使用'精灵'代替。

问题:

我不知道如何删除精灵,以便无法看到它,也无法与之交互。我也希望能够以其他方式做到这一点,而不是那时能够看到它并与之互动。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

有很多方法可以达到你想要的效果。我也不确定你在问什么。你想暂时禁用Sprite吗?或者你想完全删除精灵吗?

要暂时禁用精灵,您可以执行以下操作:

public class Entity extends Sprite{

    private boolean visible;

    **Constructor and other methods**

    public void setVisible(boolean visible){
        this.visible = visible;
    }

    public boolean isVisible(){
        return visible;
    }

}

在您的更新/渲染方法中:

Array<Entity> entities = new Array<Entity>();
entities.add(...sprite/entity1, sprite/entity2);

for(Entity entity : entities){

    if(entity.isVisible()){
        entity.update(delta);
        entity.draw(batch);
    }
}

如果你想完全删除Sprite:

public class Entity extends Sprite{

    private boolean remove = false;

    **Constructor and other methods**

    public void remove(){
        remove = true;
    }

    public boolean shouldRemove(){
        return remove;
    }         
}

在您的更新/渲染方法中:

Array<Entity> entities = new Array<Entity>();

for(int i = 0; i < entities.size; i++){
    entities.get(i).update(delta);
    entities.get(i).draw(batch);
    if(entities.get(i).remove()){
        entities.removeIndex(i--);
    }
}