我刚刚来到这里,就像一周前我开始学习编程,并且我正在开发基于文本的战略游戏,我希望每隔x秒被动地收集资源。
基本上我的游戏基于while(true)循环,其中有切换案例,游戏一直等待按键来收集资源。
我希望游戏每x秒被动地收集资源。
示例:每10秒钟您将收到+1木头。
我会欢迎帮助:) Iam使用NetBeansIDE在java中编程
答案 0 :(得分:0)
使用this获取每次循环中的当前时间 并检查自上次给你+1木头后是否经过了10秒。 注意时间单位。
答案 1 :(得分:0)
我不确定您是如何存储收集的资源,但是如果您可以根据游戏开始时调用方法来查找它。您可以将以下变量存储为游戏类的一部分:
private long startTime = System.currentTimeMillis();
然后使用以下方法获取当前资源:
public int getWood() {
long diffMilliseconds = System.currentTimeMillis() - startTime;
int numSeconds = (int)diffMilliseconds / 1000;
int amtWood = numSeconds/10;
return amtWood + <any other wood gathering/calculating parameters>;
}
这不考虑使用您的木材。如果您希望变量每十秒更新一次,您可以使用类似解决方案的内容:Print "hello world" every X seconds。此解决方案使用TimeTask类。您可以更新amtWood变量,而不是打印。
答案 2 :(得分:0)
如果对可以使用的类没有限制,请尝试将Timer
类作为Java Swing的一部分提供。您还可以查看java.util.Timer
课程以安排更新。