gpt4 book ai didi

java - AI 在 Java 游戏中每 n 秒执行一次随机 Action

转载 作者:行者123 更新时间:2023-11-30 07:33:07 25 4
gpt4 key购买 nike

我正在实现一款游戏,其中敌人 AI 从预设数量的 Action 中执行随机 Action 。 Iv 实现了随机 Action 的执行,但这意味着游戏的每次更新都会执行一个新 Action 。相反,我希望人工智能每 1 秒执行一次操作。这要怎么做呢?这是我的随机操作代码:

public class RandomAction implements Controller {
Action action = new Action();

@Override
public Action action() {

Random rand = new Random();
action.shoot = rand.nextBoolean();
action.thrust = rand.nextInt(2);
action.turn = rand.nextInt(3) - 1;
return action;
}

}

最佳答案

我假设您的应用程序重复调用不同对象上的 action() 方法,并且您只想每秒更改一次 RandomAction 行为,而不是每次调用时都更改。你可以这样做:

public class RandomAction implements Controller {
Action action = new Action();
Random rand = new Random();
long updatedAt;

public RandomAction() {
updateAction(); // do first init
}

@Override
public Action action() {
if (System.currentTimeMillis() - updatedAt > 1000) {
updateAction();
}
return action;
}

private void updateAction() {
action.shoot = rand.nextBoolean();
action.thrust = rand.nextInt(2);
action.turn = rand.nextInt(3) - 1;
updatedAt = System.currentTimeMillis();
}
}

如您所见,仅当自上次更新后经过 1 秒时,才会使用随机值更新操作。之后更新时间变量设置为当前时间。

关于java - AI 在 Java 游戏中每 n 秒执行一次随机 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35793263/

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