【问题标题】:Remove sprites Libgdx Java删除精灵 Libgdx Java
【发布时间】:2014-09-27 19:26:01
【问题描述】:

所以我有一个与另一个精灵相交的精灵,当这种情况发生时,我想删除第一个精灵,这样它就不会被看到或与之交互。 我目前正在绘制纹理,然后在同一个地方绘制一个矩形,以便我可以为矩形进行交互。我也可以改用“精灵”。

问题:

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

【问题讨论】:

    标签: java android libgdx sprite


    【解决方案1】:

    有很多方法可以实现您想要的。我也不确定你在问什么。您要暂时禁用 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--);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-21
      • 2014-09-02
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2018-06-20
      相关资源
      最近更新 更多