使用libGdx每五秒触发一次

时间:2015-06-29 19:38:12

标签: java android libgdx

如何使用libGdx每五秒钟调用一次火焰方法?

这是我的敌人类:

我编写了以下代码,但这是错误的。

public class Enemy {

    private List<Bullet> bullets;
    private boolean isFire;

    public Enemy(){
        bullets=new ArrayList<Bullet>();
    }
    public void update(float delta) {
        Gdx.app.log("State", "State Fire");
        if(!isFire){
            Gdx.app.log("State", "Fire");
            fire();
        }else{
            Gdx.app.log("State", "No Fire");
        }
    }
    private void fire() {
        isFire=true;
        bullets.add(new Bullet(5, 32));
        Timer.schedule(new Task(){
            @Override
            public void run() {
                reload();
            }
        }, getDelay());
    }
    private void reload(){
        isFire=false;
    }
    private int getDelay() {
        return 5;
    }
    public List<Bullet> getBullets(){
        return bullets;
    }
}

有没有办法解决这个问题?我不知道

1 个答案:

答案 0 :(得分:0)

我可以想到两个解决方案:

1)每隔X毫秒执行一次render方法。你可以使用那个。

<强> __ UPDATE __

以下代码为from here

text(0.6, 0.55, 'hi',fontsize=22, bbox=dict(facecolor='white', alpha=0.9, ))

在该方法中,您可以添加delta来确定自上次执行任何操作以来它是否为X毫秒。如果是这样,你可以再做一次。如果不只是递增你的柜台。这就是我的意思。

void render(float delta)

Called when the screen should render itself.

Parameters:
    delta - The time in seconds since the last render. 

然而不要做需要很长时间才能完成的事情,例如发出HTTP请求或其他内容。 }

2)或者您可以创建启动常规线程并启动它。但请记住,避免在该线程上进行任何UI渲染。