0

我正在创建一个 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

有什么建议么?

4

1 回答 1

1

您可以使用摇摆计时器:

ActionListener listener = new ActionListener(){
    public void actionPerformed(ActionEvent event){
        gsm.setState(3);
    }
};
Timer timer = new Timer(2000, listener);
timer.setRepeats(false);
timer.start();
于 2013-08-28T19:02:16.997 回答