Aller au contenu

Bloc qui s'écroule

Les plateformes qui s’écroulent permettent d’introduire une dimension de timing dans les déplacements du joueur. Ces blocs peuvent être utilisés pour introduire un sentiment d’urgence chez le joueur ou pour l’inciter à planifier ces mouvements dans des séquences plus difficiles.

  1. load.js
    const PNG = [
    "snowy",
    "grass",
    ]
  2. load.js
    const MP3 = [
    "crrr",
    "wooosh",
    "off",
    ]
  3. config.js
    const TILE_CONFIG = {
    "": () => [ // bloc qui tombe
    sprite("snowy"),
    area(),
    body({ isStatic: true }),
    anchor("bot"),
    fallingBlock(),
    scale(),
    opacity(),
    respawn(),
    ],
    "#": () => [ // player 1
    sprite("bean"),
    platformerController(),
    jumpController(),
    sleep(),
    alive(),
    opacity(),
    scale(),
    health(1, 4),
    area(),
    body(),
    respawn(),
    falling(),
    rotate(),
    pos(0, -20),
    anchor("center"),
    ],
    "=": () => [ // block
    sprite("grass"),
    area({ collisionIgnore: ["agent"] }),
    body({ isStatic: true }),
    anchor("bot"),
    offscreen({ hide: true }),
    tile({ isObstacle: true }),
    ],
    }
  4. game.js
    scene("game", () => {
    const tiles = { ...TILE_CONFIG, ...LEVELS[CURRENT_LEVEL].tiles }
    const config = { ...LEVEL_CONFIG, ...LEVELS[CURRENT_LEVEL].config, ...{tiles:tiles}}
    const map = LEVELS[CURRENT_LEVEL].map.split('\n')
    const level = addLevel(map, config)
    const utility = add([
    multiplayerCamera(),
    ])
    setGravity(config.gravity)
    setBackground(config.backgroundColor)
    on('collapse', 'falling block', (obj) => colorShiftFx(obj, { color: '85b4ff' }))
    on('collapse', 'falling block', () => play('crrr'))
    on('jump', 'player', () => play('wooosh'))
    on('drop', 'player', () => play('off'))
    on('respawn', 'player', (obj) => obj.play('idle'))
    on('sleep', 'player', (obj) => obj.play('sleep'))
    on('awake', 'player', (obj) => obj.play('idle'))
    on('jump', 'player', (obj) => obj.play('jump', { speed: 4, onEnd: () => obj.play('idle') }))
    on('drop', 'player', (obj) => obj.play('worry'))
    }
  5. level.js
    const LEVELS = [
    {
    map: `
    ≈ ===
    #
    ===≈≈≈≈≈
    `,
    },
    ]
fallingBlock()
example
config.js
fallingBlock({
tag: "body",
respawnOnFall: true,
fallDelay: 0.4,
respawnDelay: 2,
collapseDelay: 0.2,
disappearDelay: 0.4,
respawnAnimDuration: 0.4
}),