【发布时间】:2014-06-16 13:02:26
【问题描述】:
我正在慢慢学习java/LIBGDX,我有以下方法可以在单击时将图像从黑白更改,然后我在渲染中调用touchGem 方法。
我遇到的麻烦是在渲染中设置一个条件来调用此方法,以在创建新的黑色或白色宝石后停止渲染(正如您现在可以毫无疑问地知道,一旦单击它就会渲染图像一遍又一遍。)
public void touchGem() {
Gdx.input.setInputProcessor(stage);
if (touchGemStatus1 < 1) {
touchGem1 = new Image(touchGemTextureWhite);
touchGem1.setColor(1, 1, 1, 1);
touchGem1.setSize(95, 95);
touchGem1.setPosition(5, 0);
touchGem1.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y,
int pointer, int button) {
return true;
}
public void touchUp(InputEvent event, float x, float y,
int pointer, int button) {
if (touchGemStatus1 < 1) {
touchGemStatus1 = touchGemStatus1 + 1;
} else {
touchGemStatus1 = touchGemStatus1 - 1;
}
}
});
} else {
touchGem1 = new Image(touchGemTextureBlack);
touchGem1.setColor(1, 1, 1, 1);
touchGem1.setSize(95, 95);
touchGem1.setPosition(5, 0);
touchGem1.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y,
int pointer, int button) {
return true;
}
public void touchUp(InputEvent event, float x, float y,
int pointer, int button) {
if (touchGemStatus1 < 1) {
touchGemStatus1 = touchGemStatus1 + 1;
} else {
touchGemStatus1 = touchGemStatus1 - 1;
}
}
});
}
}
【问题讨论】:
-
请提供附加信息:“停止渲染” - 渲染什么?触摸宝石1? “新的黑色或白色宝石” - 它们是什么实例? “正如你毫无疑问可以说的那样”——不,我们不能。请提供您的 render() 方法。点击后是否要将 touchGem1 颜色从黑色切换为白色,反之亦然?
-
1) 是的,停止渲染 touchGem1,或者更确切地说,在单击时只渲染一次 2)touchGem1 具有黑色或白色纹理,单击时会交换,具体取决于 int touchGemStatus 是 1 还是 0 (点击它会改变) 3)渲染方法只是调用这个方法而已。 4) 是的,这完全正确,我想在点击后将它在黑色到白色之间切换,反之亦然。上面的代码可以工作,但是它会不断地呈现新的颜色,即当白色并单击它时,它会一遍又一遍地呈现黑色图像,直到再次单击它然后它会一遍又一遍地呈现白色。
标签: java loops libgdx render conditional-statements