在推动另一个州之前等待......等待()

时间:2016-06-04 17:37:32

标签: java load state wait sleep

我正在尝试在游戏开始时使用公司信息创建加载状态,同时加载一些文件。问题是当我在上面使用睡眠时。它不会绘制背景。如果我使用wait它会返回一个错误,因为它需要一个objeft。是否有捷径可寻?使用sprite批处理绘制背景,然后在推送新状态之前等待?感谢名单

@Override
public void render(SpriteBatch sb) {


    sb.begin();

    Object obj = new Object();

    sb.draw(bk, 0, 0, 56, 56);
    try {

        TimeUnit.SECONDS.sleep(5);
        gsm.push(new MenuState(gsm));
        dispose();

    } catch (Exception e) {
        System.out.println("error");
    }


    sb.end();

我也试过这个:

TimeUnit.SECONDS.wait(obj, 5);
TimeUnit.SECONDS.timedwait(5);
wait();
Thread.Sleep();

//all in try catch block

我也尝试分离自己的线程并失败了。必须有一个简单的方法来做到这一点吗?

1 个答案:

答案 0 :(得分:0)

public void timer(){

        try {
            TimeUnit.SECONDS.sleep(3);

        } catch (Exception e) {
            System.out.println("error");
        }

}


@Override
protected void handleInput() {

    if (load)
    {
    timer();
    gsm.push(new MenuState(gsm));
    dispose();
    }
}

@Override
public void update(float dt) {
    handleInput();
    load = true;
}