Java LibGDX可见性
有没有办法检查我的精灵是否可见?例如,我有一个特定的精灵,我只想在另一个精灵不可见时出现。示例“You Win”仅在您赢得游戏且“You Lose”精灵尚未出现在屏幕上时才会出现。谢谢 可以通过扩展sprite类来保持sprite的可见性。在扩展精灵类中添加数据成员,并在运行时检查精灵是否可见 您还可以通过以下方式满足您的要求:Java LibGDX可见性,java,libgdx,Java,Libgdx,有没有办法检查我的精灵是否可见?例如,我有一个特定的精灵,我只想在另一个精灵不可见时出现。示例“You Win”仅在您赢得游戏且“You Lose”精灵尚未出现在屏幕上时才会出现。谢谢 可以通过扩展sprite类来保持sprite的可见性。在扩展精灵类中添加数据成员,并在运行时检查精灵是否可见 您还可以通过以下方式满足您的要求: private Sprite win,loose; private SpriteBatch spriteBatch; private Dialo
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的可见性来跟踪游戏状态,这听起来像是拙劣的设计。这将变得非常复杂。