Java编程帮助和Android开发
-
22-10-2019 - |
题
当用户触摸屏幕时,我正在尝试通过另一个图像绘制图像。但是,只有当用户触摸然后放开屏幕时,图像才会出现。
这是我的IF方法:
int RED = 0;
int GREEN = 1;
Graphics g = game.getGraphics();
int len = touchEvents.size();
if (RED == 0) {
ready = Assets.readybtntwo;
}
for(int i = 0; i < len; i++) {
TouchEvent event = touchEvents.get(i);
if(event.type == TouchEvent.TOUCH_UP){
updateWaiting(touchEvents);
RED +=1;
if (RED == 0)
ready = Assets.readybtntwo;
if(RED == 1)
ready = Assets.readybtngreentwo;
}
g.drawPixmap(ready, 0, 0);
}
抱歉,我正在使用本书构建的Android游戏构建的框架。但这没关系,我希望图像永远保持并终止IF循环。
解决方案
您在这里有逻辑错误。看起来像变量 RED
如果上述代码全部都在触摸事件处理程序内部,则是您方法的本地。这意味着,当用户每次重置为0时触摸屏幕时,然后再次变为1。这可能不是您想要的。
它唯一呈现的原因是G.DrawPixMap将提交元素到绘制队列或立即呈现。只有在您有触摸事件时,绘制按钮的方法才会被绘制!
取而代
private boolean drawGreenReadyButton = false;
然后,您可以将该内部if语句更改为以下内容:
if(event.type == TouchEvent.TOUCH_UP){
updateWaiting(touchEvents);
drawGreenReadyButton = true;
}
在您的主要渲染循环内,而不是在触摸事件处理程序中:
if(drawGreenReadyButton) {
g.drawPixmap(Assets.readybtngreentwo, 0, 0);
} else {
g.drawPixmap(Assets.readybtntwo, 0, 0);
}
另外,考虑使用 TouchEvent.TOUCH_DOWN
而不是 TouchEvent.TOUCH_UP
, ,这样一旦触摸屏幕,就会显示纽扣绿色,而不是抬起手指时。
不隶属于 StackOverflow