shootAi
Permet à un objet de lancer une balle lorsqu'un joueur appuie sur shootKey
require
sight()triggers on self
"shoot"parameters
| Parameter | Default Value | Type | Description |
|---|---|---|---|
delay | number | 2 | |
tag | string | "player" | |
autoAim | boolean | true | |
aimMargin | vec2 | vec2(0, 0) | |
postureBreak | boolean | false | |
postureBreakDelay | number | 1 |
example
shootAi({ delay: 2, tag: "player", autoAim: true, aimMargin: vec2(0, 0), postureBreak: false, postureBreakDelay: 1}),function shootAi(p) { const param = { delay: 2, tag: "player", autoAim: true, aimMargin: vec2(0, 0), postureBreak: false, postureBreakDelay: 1, ...p, } return { id: "shootAi", require: ["sight"], add() { let c = 0 let savedTime = 0 let delay = param.delay onUpdate(() => { const c = this.getClosestTarget(param) if (c) this.trigger("aiming", c.pos.sub(this.pos).add(param.aimMargin).angle()) if (this.isAlive && time() - savedTime > delay && c) { this.trigger("shoot") savedTime = time() delay = param.delay } }) if (param.postureBreak) this.on("hit", () => { delay = param.postureBreakDelay savedTime = time() }) }, }}