Outils pour utilisateurs

Outils du site


en:yaml:tutoriel-2d

Ceci est une ancienne révision du document !


Language / Langue : FR | EN

A small 2D board

A board can fit inside one room: numbers describe the terrain, a list holds images, and actions change coordinates. JDR-Bot remains a scenario engine; movement and collision rules are written by the author.

A cell and its image

On a 7-column board, a cell number is y * 7 + x. Coordinates start at 0, increasing rightwards and downwards. Cell (1, 1) is therefore number 8.

vars:
  x: 1
  y: 1
  cell: 0
lists:
  terrain: [0, 1, 1, 0]
  grid: []
  tiles: [wall.png, floor.png, player.png]

This shows the data, not a complete map: a 7-by-7 board needs 49 terrain values. Here, 0 means wall and 1 means floor.

Rebuild the display

In an event that prepares the display, after the game rules:

do:
  - list: grid
    keep: 0
  - for_each: floor
    in: terrain
    do:
      - {list: grid, append: 't_tiles[v_floor_v]_t'}
  - cell = v_y_v
  - cell * 7
  - cell + v_x_v
  - var_text: grid[v_cell_v]
    value: t_tiles[2]_t

Then display [[grid:7:grid]] in text or a HUD. Draw the terrain first and the player afterwards. Set auto_refresh: true on the room to update text after changes.

Add rules

  1. Movement: calculate a destination, check coordinates, then read the terrain. Move only if the cell is free.
  2. Key: a collection key: {x: 1, y: 5, taken: 0} stores its position and state. Compare coordinates after moving.
  3. Exit: check position and key.taken before declaring victory.
  4. Random placement: collect reachable floor cells in a list, then choose: random for one key. Use draw: random for several objects without reusing the same cell.

Choose positions during setup, not after every move. The scenario must ensure the selected cells are reachable: the grid does not find paths.

With the editor

Create numbers, lists and collections under Globals > Variables. Add loops and operations in an event's do:, buttons in room actions, then the grid marker in a HUD. The Expert profile exposes all these fields.

Test walls, the key, the exit and Restart. Test data lets you inspect coordinates and lists in a separate window without resizing the game.

The source files include two French tutorials building La clé du jardin in five steps: TUTORIEL-2D-YAML.md and TUTORIEL-2D-EDITEUR.md. Matching YAML and .jdrproj files are in dev/exemples/tutoriel-2d/. Snake and Mini Doom provide larger examples.

See Lists and loops, Tiles and grids and Shortcuts.

en/yaml/tutoriel-2d.1792356157.txt.gz · Dernière modification : de cyrilfiesta