gpt4 book ai didi

java - 如何在java中等待而不停止整个程序

转载 作者:行者123 更新时间:2023-12-02 11:13:25 25 4
gpt4 key购买 nike

我正在制作一款游戏,玩家一次最多可以 throw 三个射弹。我在重新加载时遇到问题。这是代码:

public class AmmoManager {
public void tick(){
if(Player.ammo <= 0){
for(int t = 0; t < 10; t ++){

}

Player.ammo = 3;
}
}

}

本来应该等一会儿,然后将弹药设置为3,但是一旦弹药变为0,就立即设置为3。我做错了什么?

我尝试过使用 sleep ,但整个应用程序会停止。

最佳答案

问题是你的主程序等待tick()返回一些东西。

这样想;如果你有这个方法

public boolean isOne(int num){
Thread.sleep(1000);
if(num==1){return true;}
return false;
}

boolean result = isOne(1);
if(result){ //can't be ran until isOne(1) returns the boolean
//do something
}

当您调用 isOne() 时,您无法继续主类,因为您没有它返回的 boolean 值。你必须等待它返回值,然后你才能继续main方法

解决方案是线程。我不是这方面的专家,因此您需要咨询其他人或在线资源,但我认为它看起来像这样:

public void tick(){
new Thread({ new Runnable(){
@Override
public void run(){
if(Player.ammo <= 0){
Thread.sleep(*seconds* times 1000);
Player.ammo = 3;
}
}).start();
}

关于java - 如何在java中等待而不停止整个程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50454986/

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