Aller au contenu

Bloc glissant

Les blocs qui glissent créent une inertie dans les déplacements du joueur et ajoutent un délai aux changements de directions qu’il opère. Ces blocs peuvent être utilisés pour bousculer les habitudes du joueur en rendant son personnage plus difficile à contrôler.

  1. load.js
    const PNG = [
    "icy",
    "grass",
    ]
  2. load.js
    const MP3 = [
    "glide",
    "wooosh",
    "off",
    ]
  3. config.js
    const TILE_CONFIG = {
    "%": () => [ // bloc qui glisse
    sprite("icy"),
    area(),
    body({ isStatic: true }),
    anchor("bot"),
    offscreen({ hide: true }),
    { glide: 2 },
    ],
    "#": () => [ // 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('gliding start', 'player', () => play('glide'))
    on('gliding start', 'player', (obj) => obj.play('jump', { speed: 4, onEnd: () => obj.play('idle') }))
    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: `
    ===
    %%
    %%%%%%
    %%%%%
    #
    ===== %%%
    `,
    },
    ]