Java LibGDX可见性

Java LibGDX可见性,java,libgdx,Java,Libgdx,有没有办法检查我的精灵是否可见?例如,我有一个特定的精灵,我只想在另一个精灵不可见时出现。示例“You Win”仅在您赢得游戏且“You Lose”精灵尚未出现在屏幕上时才会出现。谢谢 可以通过扩展sprite类来保持sprite的可见性。在扩展精灵类中添加数据成员,并在运行时检查精灵是否可见 您还可以通过以下方式满足您的要求: private Sprite win,loose; private SpriteBatch spriteBatch; private Dialo

有没有办法检查我的精灵是否可见?例如,我有一个特定的精灵,我只想在另一个精灵不可见时出现。示例“You Win”仅在您赢得游戏且“You Lose”精灵尚未出现在屏幕上时才会出现。谢谢

可以通过扩展sprite类来保持sprite的可见性。在扩展精灵类中添加数据成员,并在运行时检查精灵是否可见

您还可以通过以下方式满足您的要求:

    private Sprite win,loose;
    private SpriteBatch spriteBatch;
    private DialogType dialogType;

    @Override
    public void create () {

       dialogType=DialogType.NONE;

       spriteBatch=new SpriteBatch();

       win=new Sprite(...);
       loose=new Sprite(...);

    }

    @Override
    public void render(float delta) {

     Gdx.gl.glClearColor(0, 0, 0, 1);
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    spriteBatch.begin();
    ...
    ...
    if(dialogType==WIN){
        win.draw(spriteBatch);
    }else if(dialogType==LOOSE){
        loose.draw(spriteBatch);
    }
    spriteBatch.end();

    }

public enum DialogType {    
       NONE,WIN,LOOSE 
}

就像我在评论中用一个简单的
boolean win,loose所说的那样,做你想做的事情似乎是一种压倒你几乎涵盖了你的例子,或者像其他评论所说的那样,你不应该根据一些精灵的可见性来跟踪游戏状态,而是像其他答案一样创建枚举并跟踪游戏状态,但是ima给了你一个解决方案

使用
图像
代替

Image image =  new Image(texture);
image.setBounds(0,0,100,100); // set x,y,width,height
stage.add(image); //add to stage

image.setVisible(false); //make it invisible
image.setVisible(true); //make it visible
image.isVisible(); //check if is visible

为什么不使用一个简单的布尔值win和另一个布尔值loose呢<代码>如果(赢&松)winSprite.draw(批处理)或为了使其更具可读性,只需设置
win=false
loose=false每次他们或输或赢,并绘制
if(win)winSprite.draw(batch)
与loose相同?不确定您想要实现什么:您想要检查可见性(如在测试中)还是想要控制它(如
sprite.setVisibile()
)?尝试使用各种sprite的可见性来跟踪游戏状态,这听起来像是拙劣的设计。这将变得非常复杂。