我正在使用AndEngine来开发我的游戏,不过我认为这个问题与AndEngine无关。
如果出现以下情况,我会触发两个可能的对话框:
不幸的是,如果用户在不正确的区域触及,当他们抬起时,他们也会遇到错误2 - 从错误的区域抬起。
简而言之,这是我的代码:
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
float y = pSceneTouchEvent.getY();
int dialog_count = 0;
if (pSceneTouchEvent.isActionDown() && y < 1000) {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialog Code
..............
}
}
dialog_count ++;
Log.d("Dialog Count", "Count is " + dialog_count);
} else if (dialog_count < 1 && pSceneTouchEvent.isActionUp() && y > 105) {
Log.d("Dialog Count", "Count is still " + dialog_count);
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
Second AlertDialog Code
.................
}
}
}
return false;
}
现在,dialog_count
的第一个日志显示值为1.但是,当我抬起第二个日志时,显示的值为0.不知怎的,这个值要么重置,要么我的Else语句看不到dialog_count
的更新值,因为我在第一个对话框中弹出第二个对话框。
有什么想法吗?
答案 0 :(得分:3)
您的代码初始化
int dialog_count = 0;
每次运行。
要保留上次看到的值,请在类中设置dialog_count
实例变量。
请注意,您将看到两个事件,一个用于“向下”,一个用于“向上”。
答案 1 :(得分:0)
如果您只想显示一个,那么您需要使用一个标志来检查用户是否已触及,然后如果您不想显示触摸对话框,只需从标志中查看。但Touch Down将始终跟随Touch Up。如果要在用户移动一点时显示对话框,可以使用“触摸移动”方法。
答案 2 :(得分:-1)
如果我理解正确,你要做什么