Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Nostalgia Meets Technology: Super Mario with Ty...
Search
Manfred Steyer
PRO
June 30, 2026
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nostalgia Meets Technology: Super Mario with TypeScript
Manfred Steyer
PRO
June 30, 2026
More Decks by Manfred Steyer
See All by Manfred Steyer
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
450
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
0
200
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
280
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
200
Agentic UI
manfredsteyer
PRO
0
300
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
340
Agentic UI beyond Chats Architecture Patterns & Open Standards @ngMunich 05/2026
manfredsteyer
PRO
0
290
Agentic AI in the Frontend: Architectures with Open Standards @iJS London 2026
manfredsteyer
PRO
0
210
Agentic AI & UI: Arcitecture, HITL, Emerging Standards
manfredsteyer
PRO
0
240
Featured
See All Featured
Done Done
chrislema
186
16k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Tell your own story through comics
letsgokoyo
1
1.1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
270
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
680
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
240
Music & Morning Musume
bryan
47
7.3k
Believing is Seeing
oripsolob
1
200
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Transcript
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Nostalgia Meets Technology
Super Mario with TypeScript ANGULARarchitects.io
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 2
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 3 1) Just
for Fun! 2) Learning/ Repeating Typical Patterns 3) Nice Programming Exercise Why?
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 4 1) Game
Loop 2) Tiles & Coordinates 3) Gravity 4) Side Scrolling & View Port 5) Collision Detection Agenda
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 5 About Me
(Remote) Angular Workshops and Consulting Google Developer Expert for Angular Blog, Books, Articles, and Talks about Angular Manfred Steyer, ANGULARarchitects.io
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 6 DEMO
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 7 Loading Images
const response = await fetch('/hero.png'); const blob = await response.blob(); const heroTile = await createImageBitmap( blob, 0, // x 8, // y 16, // width 16 // height );
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 8 Game Loop
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 9 A Simple
Game Loop function tick(ctx: HeroContext, timeStamp: number): void { […] }
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 10 A Simple
Game Loop function tick(ctx: HeroContext, timeStamp: number): void { console.log('timeStamp', timeStamp); […] }
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 11 A Simple
Game Loop function tick(ctx: HeroContext, timeStamp: number): void { console.log('timeStamp', timeStamp); if (keyboard.right) { ctx.x += 1; } […] }
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 12 A Simple
Game Loop function tick(ctx: HeroContext, timeStamp: number): void { console.log('timeStamp', timeStamp); if (keyboard.right) { ctx.x += 1; } ctx.context.clearRect(0, 0, 1000, 1000); ctx.context.drawImage(ctx.heroTile, ctx.x, ctx.y, 16, 16); […] }
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 13 A Simple
Game Loop function tick(ctx: HeroContext, timeStamp: number): void { console.log('timeStamp', timeStamp); if (keyboard.right) { ctx.x += 1; } ctx.context.clearRect(0, 0, 1000, 1000); ctx.context.drawImage(ctx.heroTile, ctx.x, ctx.y, 16, 16); requestAnimationFrame((timeStamp) => tick(ctx, timeStamp)); }
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 15 Tiles &
Coordinates
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 16 (Cols, Rows)
vs. (x, y)
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 17 GameGrid gameGrid[0][0]
= { tile: skyTile }; gameGrid[1][0] = { tile: skyTile }; […]
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 18 Gravity
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 19
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 20 WHILE not
at ground Increase y by velocity Increase velocity Idea
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 21 DEMO
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 22 Side Scrolling
& View Port
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 23 View Port
Scroll Offset Scroll Offset + View Port Width x renderX x - renderX
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 24 DEMO
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 25 Collision Detection
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 26 Bounding Boxes
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 27 First, in
1D < <
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 28 First, in
1D < <
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 29 Bounding Boxes
a.left < b.right b.left < a.right a.top < b.bottom b.top < a.bottom a b
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 30 DEMO
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 31 Architecture, Concepts,
Implementation Modern Angular 400+ pages, PDF, EPUB Regular Free Updates! Q1/2026 Waiting List: angular-book.com
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 32 1) Game
Loop: Take Care of Time Delta 2) Tiles & Coordinates 3) Gravity: Increase/ Decrease Velocity 4) Side Scrolling & View Port: Change Offset i/o Hero Coordinates 5) Collision Detection: Bounding Boxes 6) We had fun! Conclusion
•Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 33 [Social Media]
Manfred Steyer [web] ANGULARarchitects.io Manfred Steyer @ Manfred Steyer Slides, Examples, Book Remote Company Workshops and Consulting http://angulararchitects.io