gpt4 book ai didi

java - 暂停线程的好方法是什么?

转载 作者:行者123 更新时间:2023-12-01 14:11:35 24 4
gpt4 key购买 nike

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

有什么建议吗?

最佳答案

您可以使用 Swing 计时器:

ActionListener listener = new ActionListener(){
public void actionPerformed(ActionEvent event){
gsm.setState(3);
}
};
Timer timer = new Timer(2000, listener);
timer.setRepeats(false);
timer.start();

关于java - 暂停线程的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18495918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com