์์ , ๊ฑฐ์ 10๋ ์ ์ canvas ์กฐ์ ๋ฐฉ์๊ณผ ๋ง์ด ๋ฌ๋ผ์ก๋ค.
๊ทธ๋ html5๊ฐ ๋ง ๋ณดํธํ๋๊ธฐ ์์ํ๊ณ ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ง์ํ๋ ํจ์๊ฐ ๋ฌ๋๊ณ ํจ์ ์ด๋ฆ๋ ๋ชจ๋ ๋ฌ๋๋ค.
javascript์ class๊ฐ ๋์ ๋๊ธฐ ์ด์ ์ด์ด์ object๋ฅผ ๋น์ทํ ๋๋์ผ๋ก overridingํด์ ์ฌ์ฉํ๋ค.
๋ฌด์๋ณด๋ค ๊ฐ์ฅ ๋ฌ๋ผ์ง ๊ฑด requestAnimationFrame()๊ฐ์ renderํจ์๋ค.
์ด์ ๋ ์ด์ setInterval()์ ์ฌ์ฉํ์ง ์๋๊ฒ ๊ฐ์ ๋คํ์ด๋ค.
๊ทธ๋ฌ๊ณ ๋ณด๋ svg ์ ๋๋ฉ์ด์ ์ ๋ช๊ฐ ๋ง๋ค์ด๋ดค์ง๋ง ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ์ ๋๋ฉ์ด์ ์ ๋ง๋ค์ด ๋ณธ ์ ์ด ์์๋ค.
๊ตฌํ์ด ๊ฐ๋จํ ๊ฑฐ๋ผ ์๊ฐํ๋๋ฐ ์๊ฐ๋ณด๋ค ๊ฐ๋จํ์ง ์์๋ค.
1. ์ผ๋จ canvas๊ด๋ จ ์ฝ๋ฉ์ ๋ง์ด ์์ด๋ฒ๋ ธ๊ณ - ๋ ์ด์ ์ด๋ฐ ์ผ์ด ์๋๋ก ํ์คํ ์ ๋ฆฌํด๋์
2. ์ฐ์ต์ฉ ์ํ ์ด๋ฏธ์ง๋ค์ width๊ฐ ๋ชจ๋ ๋ค๋ฅด๊ฑฐ๋ ๊ฐ๋กx์ธ๋ก๋ก ๋ง๋ค์ด์ง ์คํ๋ผ์ดํธ ์ด๋ฏธ์ง์ฌ์ ์ฒ์ ์ต์ํด์ง๋๋ฐ ๊ณ ์ํ๋ค.
์ด์ ํ์ผ ์ด๋ฏธ์ง๋ก ๋ฐฐ๊ฒฝ์ ์ฑ์ฐ๊ณ requestAnimationFrame์ผ๋ก ์ ๋์์ด์ ์ ํ๊ณ ์ปจํธ๋กค ํ๋ ๊ฒ๊น์ง ๋ง๋ค๊ณ ์ด๊ฑธ ๋ชจ๋ํ ํด๋์.
'Moonlit ๊ฐ๋ฐ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ ๋ชฉ๋ก (1) | 2023.10.27 |
---|---|
์์ ๋ชฉ๋ก (0) | 2023.10.13 |
์ ๋ gif ๋ง๋ค๊ธฐ ์ฐ์ต (0) | 2023.10.03 |
ํฝ์ ์์ ์ค (0) | 2023.10.02 |
์ค๊ฐ ๊ฐ๋ฐ ๊ณผ์ ๊ธฐ๋ก (0) | 2023.09.23 |