在WanderBehavior
类中,radius
属性表示游走模式下移动的最大距离。具有随机游走特性的Wander行为将在当前朝向的前方寻找一个距离不超过radius
的随机点,并向该点移动。当到达目标点时,会再次随机寻找下一个点。
可通过以下方式设置radius
属性:
let wander = new WanderBehavior();
wander.radius = 50; // 设置radius为50
默认值为50
。
注意:radius
的值应该大于0,否则将无法正常运行Wander行为。
以下示例演示了如何使用Wander行为,并通过调整radius
属性的值来改变其行为:
let circle = new Circle(200, 200, 20);
let wander = new WanderBehavior();
// 将Wander行为应用到circle对象上
circle.addBehavior(wander);
// 每秒钟随机修改radius值
setInterval(() => {
wander.radius = Math.random() * 100 + 50;
}, 1000);
// 渲染循环
function gameLoop() {
// 更新circle对象的位置
circle.update();
// 在canvas上绘制circle
context.clearRect(0, 0, canvas.width, canvas.height);
circle.draw(context);
// 循环调用gameLoop函数
requestAnimationFrame(gameLoop);
}
gameLoop();
在上面的示例中,我们创建了一个半径为20
的圆形对象,并将WanderBehavior
行为应用于其上。然后,我们每秒钟随机修改radius
值,使其在50
到150
之间变化。最后,我们开启gameLoop
函数进行渲染循环。
预期效果为:圆形对象将随机游走,并且每秒钟其游走范围将有所改变。
radius
的值应该大于0,否则将无法正常运行Wander行为。radius
的值越大,Wander行为的随机程度将越小,反之亦然。一般情况下,建议设置一个合适的值,使其同时具有随机性和可控性。