๊ธฐ๋ณธ๊ฐ์๋ง ๋ฃ๋ค๋ณด๋ฉด ์ฌ๋ฏธ์๊ณ ์ง๋ฃจํ๊ณ ์ง์ค๋ ๋จ์ด์ง๊ธฐ ๋ง๋ จ์ด๋ค.
์ฐ์ฐํ youtube ์์ ์ํ
๊ฒ์ ๋ง๋ค๊ธฐ๋ผ๋ ๊ฒ์ ๋ณด๊ณ ํฅ๋ฏธ๋ฅผ ๊ฐ์ง๊ฒ ๋์๋ค.
์ ๋ฐ์ ์ผ๋ก ๋ฐ๋ผ๊ฐ๊ธฐ ์ ๋ง ๋ฌด๋ฆฌ์์ด ์ฌ์ด๊ฐ๋ ํ์์ด์๋ค.
- ์บ๋ฒ์ค ์ธํ
- ์ด๋ฏธ์ง ๋ถ๋ฌ์ค๊ธฐ
- canvas drawImage()
-> ๋ฌด์จ ์ด๋ฏธ์ง ๊ทธ๋ ค์ค๊ฑด์ง / ๊ทธ ์ด๋ฏธ์ง๋ฅผ ์ด๋์ ๊ทธ๋ ค์ค๊ฑด์ง(x.y ์ขํ)- ๋ฐฉํฅํค๋ฅผ ๋๋ฅด๋ฉด
- ์ฐ์ฃผ์ ์ xy ์ขํ๊ฐ ๋ฐ๋๊ณ
- ๋ค์ render ๊ทธ๋ ค์ฃผ๊ธฐ
- ์ ๊ตฐ ๋ง๋ค๊ธฐ , x, y, init, update
x๊ฐ : (min, max)
min=0, max= canvas.width-์ ๊ตฐ์ฌ์ด์ฆ- ์ ๊ตฐ ์์น๊ฐ ๋๋ค
- ์ ๊ตฐ์ด ๋ฐ์ผ๋ก ๋ด๋ ค์จ๋ค
-> y ์ขํ๊ฐ ์ฆ๊ฐํ๋ฏ๋ก ํจ์ ๋ง๋ค๊ณ -> update() ๋ถ๋ฌ์ค๋๋ก ํ๋ค.=> ๊ฐ์ ์ ๋ฐ์ดํธ ์ํด- 1์ด๋ง๋ค ํ๋์ฉ ์ ๊ตฐ์ด ๋์จ๋ค
createEnemy() ๋ง๋ค๊ณ
const interval = setInterval(ํธ์ถํ๊ณ ์ถ์ ํจ์, ์๊ฐ)
const interval = setInterval(์ ๊ตฐ์์ฑ, 1)
ms๊ฐ ๋จ์์ 1s = 1000ms
-> ์ ๊ตฐ์ ์น์ฌ์ดํธ๊ฐ ์์ํ์๋ง์ ์์ฑ -> render ๋ฅผ ํ๊ธฐ- ์ ๊ตฐ์ ์ฐ์ฃผ์ ์ด ๋ฐ๋ฅ์ ๋ฟ์ผ๋ฉด ๊ฒ์ ์ค๋ฒ
-> gameOver ์ด๋ผ๋ ๋ณ์ ์์ฑ-> true ์ด๋ฉด ๊ฒ์์ด ๋, false ๊ฒ์์ด ์ ๋๋จ
->- ์ ๊ตฐ๊ณผ ์ด์์ด ๋ง๋๋ฉด ์ฐ์ฃผ์ ์ด ์ฌ๋ผ์ง๋ค. ์ ์ 1์ ํ๋
-> ์บ๋ฒ์ค ๋์ด์์ ์ฐ์ฃผ์ ๋์ด๋งํผ ์ฌ๋ผ์จ ๊ฐ ์ขํ ์๊ฐ ๋๋๋ค๋ ๊ฒ.
-> if(this.y) >= canvas.height-์ ๊ตฐํฌํค {
gameOver = true
-> main () ๋์ด์ ํธ์ถ ๋์ง ๋ชปํ๊ฒ ๋ฉ์ถ๊ธฐ -> if(!gameOver)
13.์ด์์ด ์ ๊ตญ์๊ฒ ๋ฟ์ผ๋ฉด ์ฃฝ๋๋ค
-> ์ด์์ y๊ฐ์ด ์์์ง๊ณ ์ ๊ตฐ์ y๊ฐ๋ณด๋ค
์ด์.y <= ์ ๊ตฐ.y and
์ด์.x >= ์ ๊ตฐ.x and
์ ๊ตฐ.x + ์ ๊ตฐ์ ๋์ด
=> ๋ฟ์๋ค => ์ด์์ด ์ฃฝ๊ฒ๋๊ณ , ์ ๊ตฐ์ ์ฐ์ฃผ์ ์ด ์์ด์ง=> ์ ์ ํ๋
์ด๋ฏธ์ง ํฌ๊ธฐ๊ฐ ์ ์ผ ๋๊ด์ด์๋ค.
์บ๋ฒ์ค ํฌ๊ธฐ์ ๋ง์ถฐ์ ์ฐ์ฃผ์ , ์ ๊ตฐ, ์ด์ ์ด๋ฏธ์ง ์ฐพ๋๋ฐ ์๊ฐ์ ๋ง์ด ์์ ๊ฒ ๊ฐ์๊ณ
์ด์๊ณผ ์ ๊ตฐ์ด ๋ฟ์์ ๋ ์ฃฝ๋ ์์ ๊ณ์ฐ
์ ๊ตฐ์ ๋ค ์ฃฝ์ด๊ณ ๋นจ๋ฆฌ ๋นจ๋ฆฌ ์ ๋ด๋ ค์ค์ง ์๋ ์ ..์์ง ๊ฐ์ ํ ํ์๊ฐ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ์ฃผ์ ์ด ๋ง์์ ๋ค์ง ์์ ๋ค์ ์ฐพ์๋ณด๊ณ ์ ๋ฐ์ดํธ๋ฅผ ํด์ผ๊ฒ ๋ค.