์ฐ์ฃผ์ ์กฐ์ข
์ ํตํด ์ ์ ์ ๊ฑฐํ๊ณ ์ด์๋จ๋ ์ํ
๊ฒ์์ผ๋ก, ๋ ํธ๋ก ์คํ์ผ์ ์คํ์ด์ค ์ธ๋ฒ ์ด๋ ๋๋์ ๊ตฌํํฉ๋๋ค.
๐ก๋ณดํต
-
ํ๋ ์ด์ด ์ด๋ ์์คํ
โ ์ข์ฐ ์ด๋ (๋ฐฉํฅํค) + ๊ณต๊ฒฉ ๊ธฐ๋ฅ
-
์ ๋ฑ์ฅ & ์ด๋ ์์คํ
โ ์ผ์ ํจํด์ผ๋ก ์ด๋ํ๋ฉฐ ๊ณต๊ฒฉ ์ํ
-
์ด์ ์์คํ
โ ๋ฐ์ฌ ํ ํ๋ฉด ๋ฐ์ผ๋ก ๋๊ฐ๋ฉด ์ ๊ฑฐ
๊ธฐ์ |
์ค๋ช
|
HTML |
๊ฒ์ UI ๊ตฌ์ฑ |
CSS |
ํฝ์
์คํ์ผ ๋์์ธ ์ ์ฉ |
TypeScript |
๊ฒ์ ๋ก์ง ๋ฐ ์ ์ ์์คํ
๊ตฌํ |
โก ์ถ๊ฐ ๊ธฐ๋ฅ ๋ฐ ํ์ฅ์ฑ
-
๋ณด์ค์ ์ถ๊ฐ โ ํน์ ์ ์ ๋๋ฌ ์ ๊ฐ๋ ฅํ ์ ๋ฑ์ฅ
-
์์ดํ
๋๋กญ ๊ธฐ๋ฅ โ ํน์ ์ ์ฒ์น ์ ๋ฌด๊ธฐ ์
๊ทธ๋ ์ด๋ ์ ๊ณต
๊ฐ์ธ ์์
๊ท๋ชจ ์ฌ์ด์ฆ ํ์
๋ฐ ๊ตฌํ ์์
ํญ๋ชฉ |
์ค๋ช
|
๐จ 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 |
-
์ถฉ๋ ๊ฐ์ง: SAT.js ์ด์ฉํ ๋ค๊ฐํ ํด๋ฆฌ๊ณค ์ถฉ๋ ํ
์คํธ
-
์ ์ด๋ ํจํด: ๋ผ์ธ๋ณ ํ๋ ฌ ๊ธฐ๋ฐ ์ข์ฐ ์ด๋ ํ ํ๊ฐ
-
์ด์ ๊ด๋ฆฌ:
createBullet()
โ ๋ฐฐ์ด์ ์ ์ฅ โ ํ๋ฉด ๋ฐ ์ ๊ฑฐ
-
๋ผ์ด๋/๋์ด๋ ์กฐ์ : ๋ผ์ด๋๋ณ ์ ์๋ยท์๋ยท๋ณด์ค ๋ฑ์ฅ ๊ธฐ์ค
