我需要一个简单的AI脚本来让僵尸对象随机“走动”。我用谷歌搜索和谷歌搜索,但我能找到的只是数学函数'随机漫步'的东西。也许它有关系?
我正在使用自己的JavaScript 2D引擎,我需要有类似的东西:
function update() {
//Move using available physics engine stuff:
// this.position, this.rotation, this.velocity, this.torque, this.acceleration
// this.torqueAcceleration, this.drag, this.torqueDrag
}
谢谢! :)
答案 0 :(得分:3)
我在2年前在C#XNA上做了类似的脚本。
逻辑很简单。让我们来谈谈用伪代码走一个僵尸的逻辑:
以下是僵尸的步行空间/平台:
x = 0 ___________________________ x = 100
如果位置超过可行走空间的一半,僵尸脸朝左。否则僵尸面朝右。
x = 0 _____________________<_____ x = 100
x = 0 _______>___________________ x = 100
选择一个随机距离,在5到步行空间的末端之间移动。
这应该可以帮助您为所有僵尸创建脚本,漫无目的地在地图上漫游。您可以改变我在伪代码中编写的值以适合您的游戏。
答案 1 :(得分:2)
我希望你知道这与具体的编码无关。这纯粹是逻辑。 AI(人工智能)逻辑更具体。
你的僵尸会产生什么,接下来会发生什么?您想要分配行为。写下一些不同的行为。
如果僵尸站着不动,什么都不做 如果僵尸正在行走,则选择随机速度和随机方向 每隔x秒选择一个新行为。
我要做什么:
// pick behavior between 0 and 5 seconds
var behaviorTimeout = setTimeout(randomBehavior, Math.round(Math.random() * 5000);
function randomBehavior() {
// set random values
this.rotation = Math.random() * 360; // assuming its in degrees
this.velocity = Math.random() * MAX_ZOMBIE_SPEED;
// run this again in something between 0 and 5 seconds
behaviorTimeout = setTimeout(randomBehavior, Math.round(Math.random() * 5000);
}
这显然只适合走路。你需要另一个随机数来决定它是走路还是停止。
这是有人能想到的最基本的AI逻辑。如果你不再谈论僵尸了,但是理解和创造AI的实际有思想的生物会变得更难。