LibGDX的可见性

时间:2017-01-31 04:08:36

标签: java libgdx

有没有办法检查我的精灵是否可见?例如,我有一个特定的精灵,只有在其他精灵不可见时才会出现。示例"你赢了"只有在你赢了比赛并且输掉比赛时才会出现#34;精灵还没有出现在屏幕上。谢谢!

2 个答案:

答案 0 :(得分:0)

可以通过扩展Sp​​rite类来维护精灵的可见性。在扩展的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 
}

答案 1 :(得分:0)

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

使用Image代替......

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