所以我有一个与另一个精灵相交的精灵,当发生这种情况时,我想删除第一个精灵,这样就无法看到它或与之交互。 我正在绘制一个纹理,然后在同一个地方绘制一个矩形,以便我可以与矩形进行交互。我也可以使用'精灵'代替。
问题:
我不知道如何删除精灵,以便无法看到它,也无法与之交互。我也希望能够以其他方式做到这一点,而不是那时能够看到它并与之互动。有什么想法吗?
答案 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--);
}
}