我目前正在进行一个2D游戏项目(使用Java),但到目前为止,任何形式的游戏逻辑或AI都只是粗略地实现。例如,如果我需要在屏幕顶部随机放置一组精灵,我会使用Random类来实现。我会简单地使用Random.nextInt(生成的x轴大小);虽然这种方法确实有效,但我很想知道我应该如何正确处理这类事情。
作为第二个场景(这就是我为什么在标题中提到AI,尽管它并不是真正的AI),假设我想让我的角色以一种逼真的方式随机眨眼。我会在这里使用Random类来计算一个百分比(比如20%的几率)来眨眼,并且每秒调用一次。
任何关于我应该如何正确处理这类事情的建议都将不胜感激。
回答:
在Google上搜索一篇名为“Steering Behaviors”的论文,作者是Craig Reynolds。这篇论文正好讨论了这个问题,你会找到一些很好的起点,特别是一些让一组精灵看起来具有‘智能’移动的好主意。他在不同行为中的关键,如群集等,是使任何给定精灵的属性依赖于其他精灵的属性。你甚至可以进一步说,比如——任何给定精灵只有在它的两个邻居刚刚眨眼时才会眨眼。诸如此类的事情。
希望这对你有帮助!