[英]Java programming help and android development
当用户触摸屏幕时,我试图在另一个图像上绘制一个图像。 但是图像仅在用户触摸时出现,然后在用户放开屏幕时消失。
这是我的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要么将元素提交到绘制队列,要么立即渲染它。 仅在发生触摸事件时才会绘制此按钮绘制方法!
相反,您可以将boolean drawGreenReadyButton值作为类成员,即
private boolean drawGreenReadyButton = false;
然后,您可以将该内部if语句更改为以下内容:
if(event.type == TouchEvent.TOUCH_UP){
updateWaiting(touchEvents);
drawGreenReadyButton = true;
}
并在您的主要渲染循环中而不是在touch事件处理程序中放置:
if(drawGreenReadyButton) {
g.drawPixmap(Assets.readybtngreentwo, 0, 0);
} else {
g.drawPixmap(Assets.readybtntwo, 0, 0);
}
另外,请考虑使用TouchEvent.TOUCH_DOWN
而不是TouchEvent.TOUCH_UP
,以便在他们触摸屏幕后立即将按钮显示为绿色,而不是抬起手指时显示为绿色。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.