【问题标题】:How to set up a timer for an android game ?如何为安卓游戏设置计时器?
【发布时间】:2014-03-20 19:12:09
【问题描述】:
我想为 Android 编写一个游戏。
玩法原则:用户应该有很短的时间来选择正确的答案。
我的问题是输入(选择答案)和时间(倒计时)之间的组合。我试图运行一个线程,但该线程不可停止。所以用户给出答案,下一个活动将被显示,一段时间后(当“计时器”变为0时)活动将再次显示。
- 如何以正确的方式实现这一点?
- 我应该使用
Thread, Handler, CountDownTimer 吗?
【问题讨论】:
标签:
android
countdowntimer
android-handler
【解决方案2】:
你可以在初始化时使用它来保持一个正在运行的计时器:
Timer updateTimer = new Timer("update");
updateTimer.scheduleAtFixedRate(new TimerTask() {
public void run() {
updateGUI();
}
}, 0, 1000);
long startTime = System.currentTimeMillis();
然后在一个线程中:
//Clock update
currentTime = System.currentTimeMillis() - startTime;
SimpleDateFormat sdf = new SimpleDateFormat("mm:ss");
clock.setText(sdf.format(currentTime));
clock.invalidate();
您可以随意使用内部或外部的布尔值来停止线程吗?
【解决方案3】:
好吧,我不知道要使用的具体库,我自己也没有做过任何线程编程,但我会认为程序是一个状态机。我希望它有所帮助:/
设置boolean userHasAnswered = false。
设置专门的侦听器(例如,某些按钮的触摸侦听器)以获取答案。
如果侦听器从用户那里得到适当的响应,请设置userHasAnswered = true。
当问题加载时,启动倒计时线程。
如果用户在时间为零时没有给出ans,只需调用loadNextQuestion()。
在您的线程中,每隔几个单位进行一次定期检查以查看是否为userHasAnswered == true,如果为真,则调用updateScore() 和loadNextQuestion()。