Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Nostalgia Meets Technology: Super Mario with Ty...
Search
Manfred Steyer
PRO
September 29, 2026
Programming
15
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nostalgia Meets Technology: Super Mario with TypeScript @BASTA 2026 in Mainz, Germany
Manfred Steyer
PRO
September 29, 2026
More Decks by Manfred Steyer
See All by Manfred Steyer
Beyond Chatbots: Agentic UI with Open Standards @AGNTcon 2026 in Amsterdam
manfredsteyer
PRO
0
120
Next-Level Frontends: Agentic Web UIs Under the Hood
manfredsteyer
PRO
0
86
Agentic UI with Open Standards @ngGraz Sep 2026
manfredsteyer
PRO
0
97
Agentic UI with Open Standards @GDG Salzburg, Bgl & Prishtina
manfredsteyer
PRO
0
83
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
520
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
0
220
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
310
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
320
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
220
Other Decks in Programming
See All in Programming
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
170
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
2
300
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
240
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
3k
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
170
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.2k
AHC070解法紹介
eijirou
0
140
FreeBSDでZabbixを動かす
kenkino
0
330
GitHubハンズオン講座 — 実務レベルのチーム開発のフローを身につけよう
junhat6
0
110
App Intentsのビルドプロセスを支える技術
kntkymt
0
460
setup-vp GitLab対応の裏側
naokihaba
0
140
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
130
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
700
Navigating Weather and Climate Data
rabernat
0
540
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Git: the NoSQL Database
bkeepers
PRO
432
67k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
530
Optimising Largest Contentful Paint
csswizardry
37
4k
A Tale of Four Properties
chriscoyier
163
24k
The agentic SEO stack - context over prompts
schlessera
0
940
RailsConf 2023
tenderlove
30
1.6k
Between Models and Reality
mayunak
4
470
Transcript
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene Nostalgia Meets
Technology Super Mario with TypeScript ANGULARarchitects.io
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene 2
Mastertextformat bearbeiten Why? 1) Just for Fun! • Textmasterformat bearbeiten
2) Learning/ Repeating Typical Patterns Zweite Ebene Exercise 3) •Nice Programming 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
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
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene DEMO 6
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
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene Game Loop
8
Mastertextformat A Simple Game Loop bearbeiten function tick(ctx: HeroContext, timeStamp:
number): void { •[…]Textmasterformat bearbeiten } • Zweite Ebene 9
Mastertextformat A Simple Game Loop bearbeiten function tick(ctx: HeroContext, timeStamp:
number): void { timeStamp); •console.log('timeStamp', Textmasterformat bearbeiten […] • Zweite Ebene } 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 […] } 11
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
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
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene DEMO 14
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene Tiles &
Coordinates 15
Mastertextformat (Cols, Rows) vs. (x,bearbeiten y) • Textmasterformat bearbeiten •
Zweite Ebene 16
Mastertextformat bearbeiten GameGrid gameGrid[0][0] = { tile: skyTile }; gameGrid[1][0]
= { tile: skyTile }; •[…]Textmasterformat bearbeiten • Zweite Ebene 17
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene Gravity 18
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene 19
Mastertextformat bearbeiten Idea WHILE not at ground • Textmasterformat bearbeiten
Increase y by velocity • Zweite Ebene Increase velocity 20
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene DEMO 21
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene Side Scrolling
& View Port 22
Mastertextformat bearbeiten Scroll Offset View Port x - renderX •
Textmasterformat bearbeiten • Zweite Ebene renderX x Scroll Offset + View Port Width 23
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene DEMO 24
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene Collision Detection
25
Mastertextformat Bounding Boxes bearbeiten • Textmasterformat bearbeiten • Zweite Ebene
26
Mastertextformat First, in 1D bearbeiten • Textmasterformat bearbeiten < •
Zweite Ebene < 27
Mastertextformat First, in 1D bearbeiten • Textmasterformat bearbeiten < •
Zweite Ebene < 28
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
Mastertextformat bearbeiten • Textmasterformat bearbeiten • Zweite Ebene DEMO 30
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
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
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