๐Ÿš€ ์ œ 7์šฐ์ฃผ - FRONTENDBOOTCAMP-13th/JS-07-7zzang-Arcade GitHub Wiki

1. ํ”„๋กœ์ ํŠธ ์„ค๊ณ„

๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์šฐ์ฃผ์„  ์กฐ์ข…์„ ํ†ตํ•ด ์ ์„ ์ œ๊ฑฐํ•˜๊ณ  ์‚ด์•„๋‚จ๋Š” ์ŠˆํŒ… ๊ฒŒ์ž„์œผ๋กœ, ๋ ˆํŠธ๋กœ ์Šคํƒ€์ผ์˜ ์ŠคํŽ˜์ด์Šค ์ธ๋ฒ ์ด๋” ๋А๋‚Œ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒ ๊ฐœ๋ฐœ ๋‚œ์ด๋„

๐ŸŸก๋ณดํ†ต

๐ŸŽฎ ๊ธฐ๋Šฅ ๊ฐœ์š”

  • ํ”Œ๋ ˆ์ด์–ด ์ด๋™ ์‹œ์Šคํ…œ โ†’ ์ขŒ์šฐ ์ด๋™ (๋ฐฉํ–ฅํ‚ค) + ๊ณต๊ฒฉ ๊ธฐ๋Šฅ
  • ์  ๋“ฑ์žฅ & ์ด๋™ ์‹œ์Šคํ…œ โ†’ ์ผ์ • ํŒจํ„ด์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ ๊ณต๊ฒฉ ์ˆ˜ํ–‰
  • ์ด์•Œ ์‹œ์Šคํ…œ โ†’ ๋ฐœ์‚ฌ ํ›„ ํ™”๋ฉด ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋ฉด ์ œ๊ฑฐ

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

๊ธฐ์ˆ  ์„ค๋ช…
HTML ๊ฒŒ์ž„ UI ๊ตฌ์„ฑ
CSS ํ”ฝ์…€ ์Šคํƒ€์ผ ๋””์ž์ธ ์ ์šฉ
TypeScript ๊ฒŒ์ž„ ๋กœ์ง ๋ฐ ์ ์ˆ˜ ์‹œ์Šคํ…œ ๊ตฌํ˜„

โšก ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๋ฐ ํ™•์žฅ์„ฑ

  • ๋ณด์Šค์ „ ์ถ”๊ฐ€ โ†’ ํŠน์ • ์ ์ˆ˜ ๋„๋‹ฌ ์‹œ ๊ฐ•๋ ฅํ•œ ์  ๋“ฑ์žฅ
  • ์•„์ดํ…œ ๋“œ๋กญ ๊ธฐ๋Šฅ โ†’ ํŠน์ • ์  ์ฒ˜์น˜ ์‹œ ๋ฌด๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ ์ œ๊ณต

2. ์ž‘์—… ๊ณ„ํš

๊ฐœ์ธ ์ž‘์—… ๊ทœ๋ชจ ์‚ฌ์ด์ฆˆ ํŒŒ์•… ๋ฐ ๊ตฌํ˜„ ์š”์†Œ

ํ•ญ๋ชฉ ์„ค๋ช…
๐ŸŽจ Canvas ์„ค์ • HTML5 <canvas>๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 2D ๊ฒŒ์ž„ ๊ณต๊ฐ„ ๊ตฌ์„ฑ
๐ŸŽฎ ํ”Œ๋ ˆ์ด์–ด ์ปจํŠธ๋กค ์ขŒ์šฐ ๋ฐฉํ–ฅํ‚ค๋กœ ์ด๋™, ์ŠคํŽ˜์ด์Šค๋ฐ”๋กœ ์ด์•Œ ๋ฐœ์‚ฌ
๐Ÿ”ซ ์ด์•Œ ์‹œ์Šคํ…œ createBullet() ํ•จ์ˆ˜๋กœ ์ด์•Œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ๋ฐฐ์—ด๋กœ ๊ด€๋ฆฌ, ํ™”๋ฉด ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋ฉด ์ œ๊ฑฐ
๐Ÿ” ๊ฒŒ์ž„ ๋ฃจํ”„ requestAnimationFrame์„ ์‚ฌ์šฉํ•œ ์‹ค์‹œ๊ฐ„ ๋ Œ๋”๋ง ์ฒ˜๋ฆฌ
๐ŸŒŒ ๋ฐฐ๊ฒฝ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ด๋ฏธ์ง€ ๋‘ ์žฅ์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์Šคํฌ๋กค๋˜๋Š” ๋ฐฐ๊ฒฝ ๊ตฌ์„ฑ
๐Ÿ”ง ๊ณตํ†ต ๊ฐ์ฒด ๊ตฌ์กฐ GameObject ๊ธฐ๋ฐ˜์œผ๋กœ ํ”Œ๋ ˆ์ด์–ด, ์ด์•Œ ๋“ฑ์— ๊ณตํ†ต ์†์„ฑ ๋ถ„๋ฆฌ
โŒจ๏ธ ์ž…๋ ฅ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ keydown, keyup ์ด๋ฒคํŠธ๋กœ ์ž…๋ ฅ ์ƒํƒœ ์ €์žฅ ๋ฐ ๋ฐ˜์‘ ์ฒ˜๋ฆฌ
๐Ÿ“ฆ ํ™•์žฅ ๊ณ ๋ ค ์  ์œ ๋‹›, ์ถฉ๋Œ ํŒ์ •, ์ ์ˆ˜ ์‹œ์Šคํ…œ ๋“ฑ ์ถ”๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ ์„ค๊ณ„

์˜ˆ์ • ์ž‘์—…

๋‚ ์งœ ๋ชฉํ‘œ ์„ค๋ช…
Day 1~2 โœ… (์™„๋ฃŒ!) ๊ธฐ๋ณธ ๊ตฌ์กฐ + ํ”Œ๋ ˆ์ด์–ด + ์ด์•Œ + ๋ฐฐ๊ฒฝ ์ง€๊ธˆ๊นŒ์ง€ ํ•œ ๋ถ€๋ถ„
Day 3 ๐Ÿ”ป ์  ์œ ๋‹› ์ƒ์„ฑ ๋ฐ ์ด๋™ ๊ฐ„๋‹จํ•œ ๋ฐฐ์—ด๋กœ ์ ๋“ค ๋งŒ๋“ค๊ณ , ์ขŒ์šฐ/์•„๋ž˜๋กœ ์ด๋™๋งŒ ๋จผ์ € ๊ตฌํ˜„
Day 4 ๐Ÿ’ฅ ์ถฉ๋Œ ํŒ์ • (์ด์•Œ vs ์ ) ์ด์•Œ์ด ์ ๊ณผ ๋‹ฟ์œผ๋ฉด ์ œ๊ฑฐ & ์ ์ˆ˜ ์ฒ˜๋ฆฌ ๋“ฑ
Day 5 ๐Ÿง  ์ ์ˆ˜ ์‹œ์Šคํ…œ + ๊ฒŒ์ž„ ์˜ค๋ฒ„ ์กฐ๊ฑด ์ ์ˆ˜ ์˜ฌ๋ผ๊ฐ€๊ณ , ์ ์ด ์•„๋ž˜๊นŒ์ง€ ์˜ค๋ฉด ์ข…๋ฃŒ ์ฒ˜๋ฆฌ
Day 6 ๐Ÿ“ฑ UI ์š”์†Œ ์ถ”๊ฐ€ (์ ์ˆ˜, ์žฌ์‹œ์ž‘ ๋ฒ„ํŠผ ๋“ฑ) ์ ์ˆ˜ ํ‘œ์‹œ, ๊ฒŒ์ž„ ์˜ค๋ฒ„ ํ™”๋ฉด ๋“ฑ ๊ธฐ๋ณธ UI ๊ตฌ์„ฑ
Day 7 โœจ ๋””ํ…Œ์ผ ๋‹ค๋“ฌ๊ธฐ + ์‚ฌ์šด๋“œ or ํšจ๊ณผ ์ถ”๊ฐ€ sprite ๊ต์ฒด, ์‚ฌ์šด๋“œ ์ถ”๊ฐ€, ๋ฒ„๊ทธ ์ˆ˜์ •, ๋งˆ๋ฌด๋ฆฌ polish

3. ํ•ต์‹ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์ถฉ๋Œ ๊ฐ์ง€: SAT.js ์ด์šฉํ•œ ๋‹ค๊ฐํ˜• ํด๋ฆฌ๊ณค ์ถฉ๋Œ ํ…Œ์ŠคํŠธ
  • ์  ์ด๋™ ํŒจํ„ด: ๋ผ์ธ๋ณ„ ํ–‰๋ ฌ ๊ธฐ๋ฐ˜ ์ขŒ์šฐ ์ด๋™ ํ›„ ํ•˜๊ฐ•
  • ์ด์•Œ ๊ด€๋ฆฌ: createBullet() โ†’ ๋ฐฐ์—ด์— ์ €์žฅ โ†’ ํ™”๋ฉด ๋ฐ– ์ œ๊ฑฐ
  • ๋ผ์šด๋“œ/๋‚œ์ด๋„ ์กฐ์ ˆ: ๋ผ์šด๋“œ๋ณ„ ์  ์†๋„ยท์ˆ˜๋Ÿ‰ยท๋ณด์Šค ๋“ฑ์žฅ ๊ธฐ์ค€

4. UI ์„ค๊ณ„

image (6)

โš ๏ธ **GitHub.com Fallback** โš ๏ธ