我几乎完成了我的项目,制作了一个非常简单的游戏。游戏的目的是计算用户触摸屏幕的次数,并将其与屏幕上弹出的对象进行比较的次数进行比较。如果触摸次数=对象数量,则认为它是赢家。所有这一切都发生在10秒内,我不知道从哪里开始如何计时游戏? (它应该是一个非常简单的游戏,只是为了学习如何使用libgdx)
截至目前,有一个开始屏幕,用户触摸开始,然后游戏开始,弹出的对象被触摸。问题是它现在基本上是一个无穷无尽的游戏...这就是我如何制作一个对象"随机弹出":
if (Gdx.input.isTouched()) {
touchCount++;
Vector3 touchPos = new Vector3();
touchPos.set(Gdx.input.getX(), Gdx.input.getY(), 0);
camera.unproject(touchPos);
visual.x = MathUtils.random(10, 700);
visual.y = MathUtils.random(100, 400);
}
我是否必须在代码的这一部分中加入一些内置的定时器功能?如何跟踪触摸以与弹出的对象数量进行比较?
谢谢,任何建议都将非常感谢!
答案 0 :(得分:1)
System.currentTimeMillis()
以毫秒为单位为您提供当前时间
例如,你可以做这样的事情
private long time;
public void show(){
//...
time = System.currentTimeMillis();
}
public void draw(){
//...
if(System.currentTimeMillis()>time+10000){
System.out.println("after 10 seconds");
}
}
答案 1 :(得分:1)
您可以使用旧式的Java方式:
Timer timer = new java.util.Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// Pause your game or just close it...
Gdx.app.exit();
}
}, 10000L);
当然最好使用同步定时器方法,但对于快速调配或原型设计需要它有时更方便。
答案 2 :(得分:0)
使用 render()方法中的 delta 值。
render(float delta){
// ......
if (yeni_oyun_mesaji_var_MI)// a boolean value to increment my time value only it is needed.
oyun_uyari_zamani_tutucu += delta;
if (oyun_uyari_zamani_tutucu > oyun_uyari_zaman_siniri) {// after some time (**oyun_uyari_zaman_siniri**) do what you need
oyun_uyari_zamani_tutucu = 0f;
oyun_durum_mesaji_str = "";
yeni_oyun_mesaji_var_MI = false;
Gdx.app.log(TAG, "Uyarı Kapatıldı!");
}
}