door
Permet à un objet de changer le niveau actuel lorsqu'un joueur entre collision avec lui
triggers on self
"locked""enter"triggers on others
"enter"parameters
| Parameter | Default Value | Type | Description |
|---|---|---|---|
nextLevel | boolean | true | |
destination | number | 0 | |
delay | number | 0.1 | |
onInteract | boolean | false | |
locked | boolean | false |
example
door({ nextLevel: true, destination: 0, delay: 0.1, onInteract: false, locked: false}),function door(p) { const param = { nextLevel: true, destination: 0, delay: 0.1, onInteract: false, locked: false, ...p, } return { id: "door", locked: param.locked, add() { const tryEnter = (obj) => { if (!this.locked) this.enter(obj) else this.trigger("try enter", { from: obj }) } if (param.onInteract) { this.tag("interactive") this.on("interacted", (obj) => tryEnter(obj)); } else this.onCollide("player", (obj) => tryEnter(obj)); }, tryEnter(b, obj) { if (b) this.enter(obj) else this.trigger("locked") }, enter(obj) { const d = param.nextLevel ? CURRENT_LEVEL + 1 : param.destination if (d < LEVELS.length) CURRENT_LEVEL = d else CURRENT_LEVEL = 0 obj.trigger("enter") this.trigger("enter") wait(param.delay, () => go("game", obj)) }, }}