如何使用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;
}
}
有没有办法解决这个问题?我不知道
答案 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渲染。