fallingBlock
Permet à un objet de tomber lorsqu'un autre objet se trouve dessus
triggers on self
"collapse""respawn"parameters
| Parameter | Default Value | Type | Description |
|---|---|---|---|
tag | string | "body" | |
respawnOnFall | boolean | true | |
fallDelay | number | 0.4 | |
respawnDelay | number | 2 | |
collapseDelay | number | 0.2 | |
disappearDelay | number | 0.4 | |
respawnAnimDuration | number | 0.4 |
example
fallingBlock({ tag: "body", respawnOnFall: true, fallDelay: 0.4, respawnDelay: 2, collapseDelay: 0.2, disappearDelay: 0.4, respawnAnimDuration: 0.4}),function fallingBlock(p) { const param = { tag: "body", respawnOnFall: true, fallDelay: 0.4, respawnDelay: 2, collapseDelay: 0.2, disappearDelay: 0.4, respawnAnimDuration: 0.4, ...p } return { isCollapsing: false, respawnFallPos: null, id: "falling block", add() { this.onCollide(param.tag, (obj) => this.collapse(obj)) requestAnimationFrame(() => this.respawnFallPos = this.pos) this.on("respawn", () => { this.isStatic = true this.isCollapsing = false this.pos = this.respawnFallPos this.vel = vec2(0, 0) this.opacity = 1 this.fadeIn(param.respawnAnimDuration) }) }, collapse(obj) { if (!this.isCollapsing && this.pos.y > obj.pos.y) { collapsing = true wait(param.collapseDelay, () => { this.trigger("collapse") wait(param.fallDelay, () => { this.isStatic = false if (param.respawnOnFall) wait(param.respawnDelay, () => this.trigger("respawn")) }) }) } }, }}