๋ณธ๊ฒฉ์ ์ผ๋ก ์ฌ์ฉํ ์ด๋ฏธ์ง๋ฅผ ๊ทธ๋ ค๋ดค๋ค.
์ด๋ฐ ๋๋์ผ๋ก ์์ฑํ ์ ์๊ฒ ๋ค์ํ ์์์ ์บ๋ฆญํฐ๋ฅผ ๊ทธ๋ ธ๋ค.
๊ตฌํ ํ ํ์ํ ์์๋ค์ด ์๋ค๋ฉด ๋ ๊ทธ๋ ค์ ์ถ๊ฐํด ๋ณผ ์์ !
์บ๋ฆญํฐ์ ๋ ธํธ๋ถ ๋ฒํผ๋ง ๋ง๋ค์ด๋ดค๋ค.
๊ฐ๊ฐ์ ๋ฒํผ์ eventListener ๋ก click ์ ์ด๋ฏธ์ง๊ฐ ์บ๋ฒ์ค์ ๋ค์ด๊ฐ๊ฒ ๋๋ค.
๊ฐ์ ๋ฒํผ์ ๋ค์ ํด๋ฆญ ์ ์ด๋ฏธ์ง๊ฐ ์ฌ๋ผ์ง๋ค.
ํด๋ฆญํ ๋ฒํผ์ ๊ตฌ๋ถ์ ์ํด, ์ด๋ฏธ์ง๊ฐ ๋ค์ด๊ฐ ๋ฒํผ์ ๋ฐฐ๊ฒฝ ์ปฌ๋ฌ๊ฐ ๋ฐ๋๊ฒ ์ค์ ํ๋ค.
์ด์ 1. ๋์ผํ ์บ๋ฆญํฐ ํด๋ฆญ ์ img ์ button ์ ํฌ๊ธฐ๊ฐ ๋ง์ง ์์ target์ ์ฐพ๊ธฐ ์ด๋ ค์ด ์
๋ฒํผ์ ํด๋ฆญํ๊ณ ์ถ์๋ฐ, ์๊พธ ์ด๋ฏธ์ง๊ฐ ์์ ์์ด ์ด๋ฏธ์ง๊ฐ target ์ด ๋๋ค.
์ด๋ป๊ฒ ํ ์ง ๊ณ ๋ฏผํ๋ค๊ฐ, ๋ ์ค์ ์ด๋ค๊ฒ ํด๋ฆญ์ด ๋ผ๋ ๊ฐ์ className ์ด ๋ค์ด์จ๋ค๋ฉด,
ํด๋นํ๋ ์ด๋ฏธ์ง๋ฅผ canvas ์ ๊ทธ๋ ค์ฃผ๋ฉด ๋๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ ) ๋ฒํผ๊ณผ ์ด๋ฏธ์ง์ ๊ฐ์ class ๋ช ์ ์ ๋ ฅํจ
<button id="chin_button" class="chin_button img_button">
<img
class="chin_button"
src="../assets/character/chinchilla.PNG"
/>
</button>
let buttonClass = event.target.className;
if (isCharacterOnCanvas === false) {
const image = new Image();
if (buttonClass === 'chin_button') {
image.src = '../assets/character/chinchilla.PNG';
} else if (buttonClass === 'quokka_button') {
image.src = '../assets/character/quokka.PNG';
} else if (buttonClass === 'rabbit_button') {
image.src = '../assets/character/rabbit.PNG';
} else if (buttonClass === 'bear_button') {
image.src = '../assets/character/bear.PNG';
}
context.drawImage(
image,
0,
0,
CANVAS_WIDTH,
CANVAS_HEIGHT
);
isCharacterOnCanvas = true;
๋ฒํผ์ ์ ์๋ ๋์ง๋ง, ๋ฒํผ๊ณผ ์ด๋ฏธ์ง ์ฌ์ด์ ๊ฐ๊ฒฉ์ด ์์๋ค.
CSS ์ด๊ธฐํ๋ฅผ ํ๊ณ button ์ padding ์ ์์ ์ค๋ ์๋ ๋ฏธ์ธํ ๊ฐ๊ฒฉ์ด ์๊ฒผ๋ค. ํ ์ ์๊ธด๊ฑฐ์ง..?
์ด์2. ๋ฒํผ๊ณผ ์ด๋ฏธ์ง ์ฌ์ด์ gap ์์ ๊ธฐ
ํด๊ฒฐ ๋ฐฉ๋ฒ 1) ์ด๋ฏธ์ง ํ๊ทธ ๋์ , css ๋ด์์ background-image ์์ฑ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ฃ์ด์ฃผ๊ธฐ
canvas ๋ด์ ์ด๋ฏธ์ง ๋ก๋๋ ์ ๋์ง๋ง,
button ๋ด์ background ์ ์ฉ์ด ์๋๋ค.
์์ง..? ์ ๋๋ก ์ฌ์ฉํ๋๋ฐ...
.quokka_button {
width: 100px;
height: 100px;
background-image: url('../assets/character/quokka.PNG');
}
๋ญ๊ฐ ์๋ชป๋๋ ์ด๊ฒ ์ ๊ฒ ์๋ํด๋ณด๋ค ์๊ฒ ๋๋ค.
๋ก๋ ์๋๊ฒ ์๋๋ผ ์ด๋ฏธ์ง๊ฐ ๋๋ฌด ์ปค์ ๋ณด์ด์ง ์์๋ ๊ฒ...
.quokka_button {
width: 100px;
height: 100px;
background-image: url("../assets/character/quokka.PNG");
/* background-position: center; */
background-size: contain; //์ฌ์ด์ฆ๋ฅผ ์ถ๊ฐํ๋ ์ด๋ฏธ์ง๊ฐ ์ ๋ณด์.
}
background-size ๋ฅผ ์ถ๊ฐํด์ฃผ๋ ์ด๋ฏธ์ง๊ฐ ๋ฒํผ ํฌ๊ธฐ์ ๋ง๊ฒ ๋ค์ด๊ฐ๋ค!
ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ ์ ์ ํ์ง ๋ชปํ๋๋ฐ,,,,
ํด๋ฆญ ์ style.background = ‘tomato’ ์ด๋ ๊ฒ ์ฃผ๋ ๋ฐ๋์
background ์์ฑ์ ์๋ ์ด๋ฏธ์ง๊ฐ color๋ก ๋์ฒด๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ด ๋ฐฉ๋ฒ์ ์ฐ์ง ์๊ธฐ๋ก ํ๋ค.
์ด์ ๋ฐฉ๋ฒ์ผ๋ก ๋์๊ฐ์
๋ฒํผ๊ณผ ์ด๋ฏธ์ง ์ฌ์ด์ ๊ฐญ์ ํด๊ฒฐํด๋ณด์!
ํ๋ฌดํ๊ฒ๋
button ์ border ๋ฅผ ์์ ๋ ํ๋ ์ฌ๋ผ์ก๋ค.
์คํ์ผ๋ ๋ฐฐ๊ฒฝ ์์ ๋ฐ๊พธ๋ ๋์ ,
border ๋์์ธ๋ง ์ฝ๊ฐ ๋ฐ๊ฟ์ฃผ๋ ๊ฑธ๋ก ํด๋ฆญ๋ ๋ฒํผ์ ์ฐจ๋ณ์ฑ์ ์คฌ๋ค.
์ค ๊ท์ฌ์
์ ๋๋ ๊ฒ ๊ฐ์ง๋ง ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค!
๋ ธํธ๋ถ๋ง ์์ ๋ ค๊ณ ํ๋๋ฐ ์ฟผ์นด๊น์ง ์ฌ๋ผ์ง!
์ด ๋ฌธ์ ๋ ํด๊ฒฐ ํ ๋ค์ ํธ์ ์์ฑํด๋ด์ผ๊ฒ ๋ค.
๊ทธ๋๋ ๊ตฌ์์ ๊ฐ์ถ๋ ๋๋ฌด ๊ท์ฝ๋ค!
๋นจ๋ฆฌ ์์ฑ ์์ผ๋ณด๊ณ ์ถ๋ค