gravitySwitchController
Permet à un objet d'être controllé par un joueur
triggers on self
"reverse gravity""moved"parameters
| Parameter | Default Value | Type | Description |
|---|---|---|---|
gravityKey | string | "space" | |
groundedOnly | boolean | true | |
groundedDelay | number | 0.1 |
example
gravitySwitchController({ gravityKey: "space", groundedOnly: true, groundedDelay: 0.1}),function gravitySwitchController(p) { const param = { gravityKey: "space", groundedOnly: true, groundedDelay: 0.1, ...p, } return { id: "gravitySwitchController", add() { let savedTime = time() onKeyPress(param.gravityKey, () => { const grounded = !param.groundedOnly || time() - savedTime < param.groundedDelay; if (grounded) { this.trigger("reverse gravity") this.trigger("moved") for (const e of get("gravity", { recursive: true })) { e.gravityScale = -e.gravityScale e.trigger("facing", vec2(0, this.gravityScale)) } } }) this.onCollideUpdate("body", (obj, col) => { const top = this.gravityScale < 0 && col.isTop() const bot = this.gravityScale > 0 && col.isBottom() if (top || bot) savedTime = time() }) }, }}