所以,我对java和android编程相当新,我遇到的问题是我正在研究的项目的代码。基本上,有一个时间列表,我认为需要将其存储为数组。游戏开始后,需要做以下两件事之一:
现在,我已经准备好所有元素以使一切正常工作(增加屏幕印刷的数量等)。我的问题是用于检测用户是否按时按下屏幕的代码。我尝试过一些搜索,但我无法弄清楚。以下是“好”点击次数的小列表:
这些时间可能会稍微改变,如果不能正常工作,可以删除一些时间。我能想到的最大问题是确保它在游戏开始时启动计时器,以便时间匹配。当前计时器从100开始并一次倒计时1秒,当它达到零时,它将用户通过屏幕进入游戏。当然,如果有更好的方法可以改变,或者以不同的方式使屏幕按下检测代码工作,这可能会改变。
知道如何使这项工作?
答案 0 :(得分:1)
实际上,您需要做的就是在游戏开始时记录当前的系统时间。然后,它只是:
long startTime = System.currentTimeMillis();
//...
System.currentTimeMillis() - startTime;
然后,检查你是否在数组中任何一点设置的边界内(我假设它是一个双精度数组):
public final static int THRESHOLD_MSEC = 100;
public boolean isHit(double time) {
int time = System.currentTimeMillis - startTime;
for(double d : array)
if(Math.abs(d-time) < THRESHOLD_MSEC) return true;
return false;
}
然后,在您的应用程序的其他地方,您可以处理isHit
返回true或false时发生的情况。我不打算为你写那部分。值得注意的是:与人类反应相比,几毫秒 nothing , nobody 将能够创造那个时间。