canvas ์๋ฆฌ๋ฉํธ ๊ฐ์ ธ์ค๊ธฐ, getContext,
์ฐ์ฃผ์ ์ด๋ฏธ์ง ์ฝ์ด์ค๊ธฐ,
setInterval 30ms ๊ฐ๊ฒฉ์ผ๋ก runGameํจ์ ๊ณ์ ํธ์ถ.
keyPressed[ํค์ฝ๋ ๋ฐ์์] ๋ฐฐ์ด์ ํด๋นํ๋ ๊ณณ์ true๊ฐ ์ฃผ๊ธฐ
keyPressed[ํค์ฝ๋] false๊ฐ ์ฃผ๊ธฐ
์ด์๋ฐฐ์ด ์ด๊ธฐํ,
์ด์ ๊ฐฏ์๋งํผ ์ด์์ ์ขํ, ์๋, ์์์ ๋๋ค์ผ๋ก ์์ฑ,
์ฐ์ฃผ์ ์์น๋ฅผ ํ๋ฉด ๊ฐ์ด๋ฐ๋ก,
์์์๊ฐ ์กฐ์ฌํด๋๊ธฐ
ํ์ฌ ์๊ฐ ๊ตฌํ๊ธฐ
(์์คํ ๋ ์ง ๊ฐ์ฒด๋ก ๊ฐ์ ธ์์ โก ์๊ฐ์ผ๋ก ๋ณํ โก ๊ฐ์ฒด ๊ฐ์ ธ์จ๊ฑฐ ์ญ์ โก ๋ณํํ ์๊ฐ ๋ด๋ณด๋ด๊ธฐ)
WAIT์ํ : keyPressed[13]์ผ๋กEnterํค
๋๋ฅด๋์ง๋ง ๊ฒ์ฌ.
Enterํค
๋๋ฅด๊ณ ์ด๋ฏธ์ง๊ฐ ๋ก๋ ์๋ฃ๋๋ฉด
startGame()ํจ์ ํธ์ถํด์ ๊ฒ์ ์ด๊ธฐํํ๊ณ , ์ํstate๋ฅผ RUN์ผ๋ก ๋ฐ๊ฟ
GAMEOVER์ํ : WAIT์ ๋ฌถ์(GAMEOVER ์ํ๋ Enterํค๋ฅผ ๊ธฐ๋ค๋ฆฐ๋ค๋ ๋ฉด์์๋ WAIT ์ํ์ ๊ฐ๊ณ ์ด์๊ณผ ์ฐ์ฃผ์ ์ ํ์ํ๋ค๋ ๋ฉด์์๋ RUN ์ํ์ ๊ฐ๋ค.)
RUN์ํ : ๋๋ฌ์ง ํค์ ๋ฐ๋ผ ์ฐ์ฃผ์ ์ ์ขํ๋ฅผ ์กฐ์ ํ๊ณ ๋ฐฉํฅ๋ณ๋ก ์ฐ์ฃผ์ ํ์ ๊ฐ๋๋ฅผ angle์ ๋์ .
๊ฒฝ๊ณผ ์๊ฐ ๊ตฌํ๊ณ ,
์ด์ ์ด๋ ์ํด(ํ๋ฉด ๊ฐ์ฅ์๋ฆฌ์ ๋ฟ์ผ๋ฉด ๋ฐ๋ํธ์ผ๋ก ์ด๋, ์ถฉ๋ ๊ฒ์ฌ ๋ฐ ์ถฉ๋ ์ GAMEOVER์ํ๋ก ์ ํ)
case์ ๋ฐ๋ผ ๋ถ๊ธฐ ํ draw( )๊ทธ๋ฆฌ๊ธฐ ํธ์ถ
๋ฌธ์์ด ์ถ๋ ฅ ํจ์
ํ๋ฉด ๋ฆฌ์ ํ๊ธฐ ์ํ clearRect ํ ๋ถ๊ธฐswitchใฑใฑ
WAIT์ํ : drawText๋ก ๊ฒ์ ๋ฐฉ๋ฒ๋ง ์ถ๋ ฅํ๋ฉด ๋จ
RUN์ํ : ์ด์(๋ฐฐ์ด ์ํํ๋ฉด์ ์ ๊ทธ๋ฆฌ๊ณ ์ด์ ์์๋๋ก ์ ์ฑ์ฐ๊ธฐ),
์ฐ์ฃผ์ ๊ทธ๋ฆผ(ํ์ ์ค์ฌ์ ์ด ์ฐ์ฃผ์ ์ ๊ฐ์ด๋ฐ ๋ถ๋ถ์ด๋ฏ๋ก ์ด๋, ํ์ , ์ด๋ ๋ณํ์ ์์๋๋ก),
ํ์ฌ์๊ฐ ์ถ๋ ฅ(GAMEOVER์ผ๋๋ ๋ฌธ์์ด ํ์, GAMEOVER์๋๋๋ ๊ฒฝ๊ณผ์๊ฐ ๊ฐฑ์ ),
๊ฒฝ๊ณผ์๊ฐ ํ์(GAMEOVER์ผ๋๋ ๋ฌธ์์ด๊ณผ ํ์ฌ์๊ฐ์ด ํจ๊ป ๋ณด์ฌ์ง๊ฒ ๋จ. ์๋๋๋ ๊ฒฝ๊ณผ์๊ฐ๋ง ๋ณด์ฌ์ง)
GAMEOVER์ํ : RUN์ ๋ฌถ์(GAMEOVER ์ํ๋ Enterํค๋ฅผ ๊ธฐ๋ค๋ฆฐ๋ค๋ ๋ฉด์์๋ WAIT ์ํ์ ๊ฐ๊ณ ์ด์๊ณผ ์ฐ์ฃผ์ ์ ํ์ํ๋ค๋ ๋ฉด์์๋ RUN ์ํ์ ๊ฐ๋ค.)
์๊ฐ๋ณด๋ค ํ ๋งํ๋ค...!์ถ์ผ๋ฉด์๋ ์ค์ค๋ก ์ฝ๋ ์ง๋ณด๋ ค๊ณ ํ๋ฉด ์ด๋ ค์ธ๊ฑฐ๊ฐ๋ค,,,,,....๋ ์๊ฐ์ด ๋ ๋ค๐ฅบ
๋ฐฐ์ด ์ ์ด๋ผ๊ธฐ๋ณด๋ค ๋ชจ๋ฅด๊ฒ ๋ ๋ถ๋ถ๋ค์ ์ฐพ์๋ค.
โ ๋ฐฐ์ด ์ ์ธํ ๋ []
๋ new Array()
๋ถ๋ถ ๋ค์ ๊ณต๋ถ
โ constructor
๋ prototype
๊ฐ๋
์ ๋ฆฌ ๋ค์
โ this
๋ค์
โ () => {}
์ function() {}
์ฐจ์ด์ ๋ค์. ํนํ this ๋ฌ๋ผ์ง๋๊ฑฐ