Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nostalgia Meets Technology: Super Mario with Ty...

Nostalgia Meets Technology: Super Mario with TypeScript @BASTA 2026 in Mainz, Germany

Avatar for Manfred Steyer

Manfred Steyer PRO

September 29, 2026

More Decks by Manfred Steyer

Other Decks in Programming

Transcript

  1. Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene Nostalgia Meets

    Technology Super Mario with TypeScript ANGULARarchitects.io
  2. Mastertextformat bearbeiten Why? 1) Just for Fun! • Textmasterformat bearbeiten

    2) Learning/ Repeating Typical Patterns Zweite Ebene Exercise 3) •Nice Programming 3
  3. Mastertextformat bearbeiten Agenda 1) Game Loop • Textmasterformat bearbeiten 2)

    Tiles & Coordinates Zweite Ebene 3) •Gravity 4) Side Scrolling & View Port 5) Collision Detection 4
  4. Mastertextformat About Me bearbeiten Manfred Steyer, ANGULARarchitects.io • Textmasterformat bearbeiten

    • Zweite Ebene (Remote) Angular Workshops and Consulting Google Developer Expert for Angular Blog, Books, Articles, and Talks about Angular 5
  5. Mastertextformat Loading Images bearbeiten const response = await fetch('/hero.png'); const

    blob = await response.blob(); •const Textmasterformat bearbeiten heroTile = await createImageBitmap( blob, 0, // x 8, // y 16, // width 16 // height ); • Zweite Ebene 7
  6. Mastertextformat A Simple Game Loop bearbeiten function tick(ctx: HeroContext, timeStamp:

    number): void { •[…]Textmasterformat bearbeiten } • Zweite Ebene 9
  7. Mastertextformat A Simple Game Loop bearbeiten function tick(ctx: HeroContext, timeStamp:

    number): void { timeStamp); •console.log('timeStamp', Textmasterformat bearbeiten […] • Zweite Ebene } 10
  8. Mastertextformat A Simple Game Loop bearbeiten function tick(ctx: HeroContext, timeStamp:

    number): void { timeStamp); •console.log('timeStamp', Textmasterformat bearbeiten if (keyboard.right) { ctx.x += 1; } • Zweite Ebene […] } 11
  9. Mastertextformat A Simple Game Loop bearbeiten function tick(ctx: HeroContext, timeStamp:

    number): void { timeStamp); •console.log('timeStamp', Textmasterformat bearbeiten if (keyboard.right) { ctx.x += 1; } • Zweite Ebene ctx.context.clearRect(0, 0, 1000, 1000); ctx.context.drawImage(ctx.heroTile, ctx.x, ctx.y, 16, 16); […] } 12
  10. Mastertextformat A Simple Game Loop bearbeiten function tick(ctx: HeroContext, timeStamp:

    number): void { timeStamp); •console.log('timeStamp', Textmasterformat bearbeiten if (keyboard.right) { ctx.x += 1; } • Zweite Ebene ctx.context.clearRect(0, 0, 1000, 1000); ctx.context.drawImage(ctx.heroTile, ctx.x, ctx.y, 16, 16); requestAnimationFrame((timeStamp) => tick(ctx, timeStamp)); } 13
  11. Mastertextformat bearbeiten GameGrid gameGrid[0][0] = { tile: skyTile }; gameGrid[1][0]

    = { tile: skyTile }; •[…]Textmasterformat bearbeiten • Zweite Ebene 17
  12. Mastertextformat bearbeiten Idea WHILE not at ground • Textmasterformat bearbeiten

    Increase y by velocity • Zweite Ebene Increase velocity 20
  13. Mastertextformat bearbeiten Scroll Offset View Port x - renderX •

    Textmasterformat bearbeiten • Zweite Ebene renderX x Scroll Offset + View Port Width 23
  14. Mastertextformat Bounding Boxes bearbeiten a • Textmasterformat bearbeiten • Zweite

    Ebene b a.left < b.right b.left < a.right a.top < b.bottom b.top < a.bottom 29
  15. Modern Angular bearbeiten Mastertextformat Architecture, Concepts, Implementation • Textmasterformat bearbeiten

    400+ pages, PDF, EPUB • Zweite Ebene Regular Free Updates! Q1/2026 Waiting List: angular-book.com 31
  16. Mastertextformat bearbeiten Conclusion 1) Game Loop: Take Care of Time

    Delta • Textmasterformat bearbeiten 2) Tiles & Coordinates ZweiteIncrease/ Ebene Decrease Velocity 3) •Gravity: 4) Side Scrolling & View Port: Change Offset i/o Hero Coordinates 5) Collision Detection: Bounding Boxes 6) We had fun! 32
  17. Mastertextformat bearbeiten Manfred Steyer [Social Media] Manfred Steyer • Textmasterformat

    bearbeiten [web] ANGULARarchitects.io • Zweite Ebene Slides, Examples, Book Remote Company Workshops and Consulting http://angulararchitects.io @ Manfred Steyer 33