2014-09-27 111 views
0

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

问题:

我不知道我可以删除精灵,使其不能被看到,并且不能与之交互。我也希望能够以其他方式做到这一点,而不是在那里能够看到并与之互动。有任何想法吗?

回答

0

有很多方法可以实现你想要的。我也不确定你在问什么。你想暂时禁用雪碧吗?或者你想完全删除精灵?

要暂时禁用你可以做的精灵如下:

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); 
    } 
} 

,如果你想彻底删除雪碧:

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--); 
    } 
}