Outils pour utilisateurs

Outils du site


en:yaml:tutoriel-2d

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
en:yaml:tutoriel-2d [2026/10/18 22:42] – Documentation 4.17 : listes, boucles, raccourcis et editeur cyrilfiestaen:yaml:tutoriel-2d [2026/10/19 04:19] (Version actuelle) – Retrait du tutoriel 2D et de ses liens, a la demande de l'auteur cyrilfiesta
Ligne 1: Ligne 1:
-**Language / Langue :** [[fr:yaml:tutoriel-2d|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. 
- 
-<code yaml> 
-vars: 
-  x: 1 
-  y: 1 
-  cell: 0 
-lists: 
-  terrain: [0, 1, 1, 0] 
-  grid: [] 
-  tiles: [wall.png, floor.png, player.png] 
-</code> 
- 
-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: 
- 
-<code yaml> 
-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 
-</code> 
- 
-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.taken'' before declaring victory. 
-  - **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 [[en:yaml:listes-boucles|Lists and loops]], [[en:yaml:tiles-tilemaps|Tiles and grids]] and [[en:yaml:raccourcis|Shortcuts]]. 
  
en/yaml/tutoriel-2d.1792356157.txt.gz · Dernière modification : de cyrilfiesta