我正在创建一个java 2D平台游戏,当播放器死亡时,让播放动画时遇到一些麻烦。当玩家死亡时,所有敌人都会被移除,并且会播放爆炸动画。与此同时,玩家开始眨眼。我想要继续大约两秒钟,然后让我的setState()
方法切换到“PlayerDeadState”,这基本上是重试或返回主菜单选项屏幕。我使用过Thread.sleep()
,但它不起作用,我听说它对GUI线程不好。
这是我的代码:
public void update() {
// check if player is dead
if(player.dead == true) {
player.flinching = true;
for(int i = 0; i < enemies.size(); i++) {
Enemy e = enemies.get(i);
e.update();
e.hit(200);
if(e.isDead()) {
enemies.remove(i);
i--;
eExplosions.add(
new Explosion(e.getx(), e.gety()));
}
}
gsm.setState(3);
}
}
如果我注释掉setState()
方法,动画就会通过。这个问题是我目前不能同时拥有这两个问题。动画,或加载必要的GameState。我想要两个。 :P
有什么建议吗?
答案 0 :(得分:1)
你可以使用摇摆计时器:
ActionListener listener = new ActionListener(){
public void actionPerformed(ActionEvent event){
gsm.setState(3);
}
};
Timer timer = new Timer(2000, listener);
timer.setRepeats(false);
timer.start();