我正在尝试为游戏中的加电添加计时器。我想要做的是在播放器与开机盒发生碰撞后更改参数(例如跳高),但它应该只应用4秒。我已经编写了碰撞编码并添加了一个随机元素来选择激活哪个加电。我还添加了一个不会使用计时器的电源(在评分中加1)。
搜索谷歌我发现代码使用各种方法,如Gdx.graphics.getDeltaTime()和Timer.schedule,但我似乎无法让它们工作,也许我正在编码错误。我一直试图使用这样的代码但是在使用System.out.println(timeSinceCollision)时,我每次都会得到一个恒定的值,而且它似乎并没有增加。
float timeSinceCollision = 0;
timeSinceCollision += delta;
if(timeSinceCollision < 4f) {
// the action
} else {
// reset
}
答案 0 :(得分:0)
正如我在上面的评论中提到的,您可以使用CountDownTimer类。
new CountDownTimer(4000, 4000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
isPoweredUp = false;
}
}.start();
答案 1 :(得分:0)
每次创建timeSinceCollision时值为0,这就是为什么它永远不会增加。
看看我的功能。 If条件每4秒为真。
final float TIME_SINCE_COLLISION = 4;
float timeSinceCollision = 0;
public void update(float delta) {
timeSinceCollision += delta;
if (timeSinceCollision >= TIME_SINCE_COLLISION) {
timeSinceCollision -= TIME_SINCE_COLLISION;
// Do something after 4 seconds.
Gdx.app.log("Do something", "");
}
}