如何创建一个计时器?

how to create a timer?

我想做一个飞扬的小鸟游戏,我想知道如何制作一个计时器,当玩家按下屏幕时,小鸟(或我的情况下是鱿鱼)将开始上升,当计时器结束它将再次开始下降。

这是代码

batch.begin();
        //ignore this part
        batch.draw(Assets.sprite_back,BackX ,0);
        batch.draw(Assets.sprite_back2,BackX2 ,0);
        //this is the squid
        batch.draw(Assets.sprite_squiddy,10 ,squiddyY);
batch.end();

}

public void generalUpdate(){
    //ignore
    BackX -= 1;
    BackX2 -= 1;
    //look at this
    squiddyY -=4;
    //continue ignoring
    if(BackX<=-480){
        BackX = 480;
    }
    if(BackX2<=-480){
        BackX2 = 480;
    }
    //this is the part we need
    if(Gdx.input.justTouched()){
        squiddyY += 100;

    }
}

所以实际上现在如果你按下它会自动上升,我希望他能顺利到达那里

我希望我解释得足够好。

哦,是的,如果有更好的方法请告诉我

这里有几个定时器教程。您可以使用该想法并绑定游戏中事件的开始和停止。

http://examples.javacodegeeks.com/android/core/os/handler/android-timer-example/

http://www.theappguruz.com/blog/android-count-timer/

Android - Creating a Timer loop for a pong game

这可能不是您想要的答案,但可能是您需要的

如果您正在制作 Flappy Bird,我不鼓励使用计时器。可以通过使用重力以更简单的方式完成,即通过添加速度和加速度。

velocityY = 0;
accelerationY = -100;
public void generalUpdate(){
//ignore
BackX -= 1;
BackX2 -= 1;
//continue ignoring
if(BackX<=-480){
    BackX = 480;
}
if(BackX2<=-480){
    BackX2 = 480;
}
//this is the part we need

velocityY += accelerationY;
squiddyY  += velocityY;
if(Gdx.input.justTouched()){
    velocityY += 100;

}

这将为您提供所需的 "falling down" 和 "jump" 效果。

这是一种创建计时器的方法

private long time = 0;

在你的 update() 扇区

if(TimeUtils.nanoTime() - time >= TIME)
{
spawn();
time = TimeUtils.nanoTime();
}

在你的 spawn() 创建你的生成机制

希望这对您有所帮助并祝您愉快:)