Aller au contenu

Mouvement alterné

Les plateformes en mouvement permettent d’introduire une dimension de timing dans les déplacements du joueur. Le mouvement alternatif de ces plateformes peut permettent au joueur de pouvoir prédir leur position et de planifier ces mouvements en conséquences. Avec un peu de créativité, l’utilisation des plateformes peut permettre une grande variété de défi pour le joueur.

  1. load.js
    const PNG = [
    "plate",
    "grass",
    ]
  2. config.js
    const TILE_CONFIG = {
    "<": () => [ // plateforme en mouvement <-
    sprite("plate"),
    pos(0, -64),
    movingBackAndForth({ direction: vec2(-1, 0) }),
    body({ isStatic: true }),
    offscreen({ hide: true }),
    area(),
    anchor("top"),
    ],
    ">": () => [ // plateforme en mouvement ->
    sprite("plate"),
    pos(0, -64),
    movingBackAndForth({ direction: vec2(1, 0) }),
    body({ isStatic: true }),
    offscreen({ hide: true }),
    area(),
    anchor("top"),
    ],
    "^": () => [ // plateforme en mouvement ^
    sprite("plate"),
    pos(0, -64),
    movingBackAndForth({ direction: vec2(0, -1) }),
    body({ isStatic: true }),
    offscreen({ hide: true }),
    area(),
    anchor("top"),
    ],
    "v": () => [ // plateforme en mouvement v
    sprite("plate"),
    pos(0, -64),
    movingBackAndForth({ direction: vec2(0, 1) }),
    body({ isStatic: true }),
    offscreen({ hide: true }),
    area(),
    anchor("top"),
    ],
    "x": () => [ // stopper
    rect(60, 60),
    pos(0, 2),
    opacity(0),
    area(),
    anchor("bot"),
    "stopper"
    ],
    "#": () => [ // 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 }),
    ],
    }
  3. level.js
    const LEVELS = [
    {
    map: `
    x < x
    x x
    # ^
    === v ===
    x x
    x > x
    `,
    },
    ]
movingBackAndForth()
example
config.js
movingBackAndForth({
direction: vec2(1, 0),
speed: 100,
switchDelay: 1
}),