followAi
require
sight()agent()parameters
| Parameter | Default Value | Type | Description |
|---|---|---|---|
retreat | boolean | true | |
tragetMemory | boolean | true | |
stopDistance | number | 10 |
example
followAi({ retreat: true, tragetMemory: true, stopDistance: 10}),function followAi(p) { const param = { retreat: true, tragetMemory: true, stopDistance: 10, ...p, }; return { require: ['sight', 'agent'], id: 'follow', retreatTarget: null, memorizedTarget: null, add() { requestAnimationFrame(() => (this.retreatTarget = vec2(this.pos))); if (param.retreat) this.onTargetReached(() => this.setTarget(this.retreatTarget)); }, update() { if (this.currentTarget) { this.setTarget(this.currentTarget.pos); this.memorizedTarget = this.currentTarget.pos; } else if (param.tragetMemory && this.memorizedTarget) { this.setTarget(this.memorizedTarget); if (this.pos.dist(this.memorizedTarget) < param.stopDistance) this.memorizedTarget = null; } else if (param.retreat) this.setTarget(this.retreatTarget); }, };}