有没有办法检查我的精灵是否可见?例如,我有一个特定的精灵,只有在其他精灵不可见时才会出现。示例"你赢了"只有在你赢了比赛并且输掉比赛时才会出现#34;精灵还没有出现在屏幕上。谢谢!
答案 0 :(得分:0)
可以通过扩展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
}
答案 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