Ceci est une ancienne révision du document !
Table des matières
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
- Movement: calculate a destination, check coordinates, then read the terrain. Move only if the cell is free.
- Key: a collection
key: {x: 1, y: 5, taken: 0}stores its position and state. Compare coordinates after moving. - Exit: check position and
key.takenbefore declaring victory. - Random placement: collect reachable floor cells in a list, then
choose: randomfor one key. Usedraw: randomfor 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.
