Workshop › Mario-style Platformer › Step 2 of 37

A level made of text

What we are doing

Platform games are built from tiles: a grid of small squares, each empty or solid. Instead of placing hundreds of rectangles by hand, we write the level as text: each string is one row, each character one 32×32 tile.

```js
const TILE = 32
// The level as text: '#' ground, 'B' brick, 'o' coin, 'e' enemy, 'P' player start, 'F' flag.
const LEVEL = [
  '................................................................',
  '................................................................',
  '................................................................',
  '................................................................',
  '....................................oooo........................',
  '.........oooo........................e..........................',
  '.........BBBB.................ooo...BBBB....##..................',
  '....ooo...............#....................###.......oooo.......',
  '..P...................#...e...............####.....e.....e...F..',
  '################..############...#############..################',
  '################..############...#############..################',
]
const ROWS = LEVEL.length
const COLS = LEVEL[0].length
```

What it means

Your turn

Under const ctx = ..., leave an empty line and write TILE, the comment, LEVEL, ROWS and COLS. You may copy the level: each row must be exactly 64 characters.

Skills: Arrays and objects

All steps

  1. The sky
  2. A level made of text
  3. Draw the tiles
  4. What is solid?
  5. Is a box touching anything?
  6. Find the start
  7. Draw the player
  8. Gravity
  9. Landing on tiles
  10. Which keys are held?
  11. Speed up
  12. Friction
  13. Walls
  14. Jump
  15. Bump your head
  16. Short hops
  17. A few frames of grace
  18. Coyote time
  19. A camera that follows
  20. Stop at the ends
  21. Draw only what is on screen
  22. Coins
  23. Collect them
  24. Count, and screen versus world
  25. Enemies
  26. Enemies that walk
  27. Do not walk off ledges
  28. Lives and a fresh start
  29. Falling into a pit
  30. Enemies hurt
  31. Stomp!
  32. Squashed enemies are gone
  33. Game over
  34. Play again
  35. The flag
  36. Reach the flag
  37. Build it yourself: jump buffering