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
89
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
Agentic UI with Open Standards: AG-UI, A2UI, and MCP Apps – When Do You Need Which? @OOP Focus Day 2026, Online
manfredsteyer
PRO
1
33
Beyond Chatbots: Agentic UI with Open Standards @W-JAX 2026, München
manfredsteyer
PRO
0
90
Architecture as Executable Contract: Agents Respecting Your Architecture @W-JAX 2026, München
manfredsteyer
PRO
0
160
A2UI as an Architecture Question: Agentic UI Between AI Freedom and Control
manfredsteyer
PRO
0
79
Agentic UI Requires Standards: How AG-UI, A2UI, and MCP Apps Play Together
manfredsteyer
PRO
0
86
AI-Ready Angular Architectures Architecture as Executable Contract
manfredsteyer
PRO
0
100
Human in the Loop Beyond Approval: Toward True Collaboration @FrontMania 2026 in Utrecht
manfredsteyer
PRO
0
110
Agentic UI: Where the Agent meets the User @FrontMania 2026 in Utrecht
manfredsteyer
PRO
0
120
A2UI as an Architecture Question: Agentic UI Between AI Freedom and Control
manfredsteyer
PRO
0
120
Other Decks in Programming
See All in Programming
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
3
290
AIが実装を担う時代の「技術設計」と「チームマネジメント」
kamina_zzz
2
250
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
740
Next.js: The final boss of Web Performance
guaca
0
400
느린 네트워크와 저사양 디바이스 사용자를 위한 웹뷰 로딩 시간 개선기
kmkim
1
220
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
260
まずはコードより業務と向き合う:テーブル解体のためにPdMを呼んだ話
sakawe_ee
0
210
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
200
Secure Your Coding Agent Like It’s Malware (v1.5) 🇬🇧 @Code.talks 2026
richargh
0
110
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.3k
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
300
はじめてのPLATEAU
nokonoko1203
1
640
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
760
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
3k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
How to Talk to Developers About Accessibility
jct
2
620
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
We Have a Design System, Now What?
morganepeng
55
8.4k
Making the Leap to Tech Lead
cromwellryan
135
10k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
70
68k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
890
Agile that works and the tools we love
rasmusluckow
331
22k
The Cost Of JavaScript in 2023
addyosmani
56
10k
Test your architecture with Archunit
thirion
2
2.5k
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