π« μ΄μ μμΉ μ‘κΈ° - FRONTENDBOOTCAMP-13th/JS-07-7zzang-Arcade GitHub Wiki
ꡬλΆ
- λ μ§ : 2025.05.14
- μ’ λ₯ : λ²κ·Έ
- μ€μλ : π‘
1. λ¬Έμ μν©
νλ μ΄μ΄ μμΉ μ€μμΌλ‘ μ΄μμ΄ λ°μ¬ λλλ‘ ν΄μΌ νλλ°
μ μ΄μ§ μ€λ₯Έμͺ½μΌλ‘ λ°μ¬κ° λ κΉ? λΆλͺ μ½λλ λ§λκ±° κ°λ€..
2. μ½λ 첨λΆ
shoot() {
// 1. μ΄μ μ’ν μ‘κΈ°
// x μ’νλ νλ μ΄μ΄μ λ± μ€κ° μμΉ λ°λΌμ width / 2 μ λ°
// y μ’νλ νλ μ΄μ΄μ 머리 μμΉ y
const bulletX = this.x + this.width / 2;
const bulletY = this.y;
// 2. μ΄μ μμ±νκΈ° xμ’ν, yμ’ν, λμ΄, λμ΄, μ€νΌλ, μ΄λ―Έμ§, update, draw
this.bullets.push({
x: bulletX,
y: bulletY,
width: 20,
height: 20,
speedY: 3,
sprite: bulletImg,
// update ν¨μμλ μ΄μμ΄ μ΄λνλ λͺ¨μ΅μ ꡬν
update() {
// νμ¬ y μμΉμμ μ€νΌλ λ§νΌ λΉΌμ μλ‘ μ¬λΌκ°λλ‘ κ΅¬ν
this.y = this.y - this.speedY;
},
draw() {
// ctx.drawImage(μ΄λ―Έμ§, x, y, width, height);
ctx.drawImage(this.sprite, this.x, this.y, this.width, this.height);
},
});
},
μ€λͺ νμλ©΄ bulletX μ bulletYλ‘ μ’νλ₯Ό μ‘λλ°,
νμ¬ νλ μ΄μ΄μ μμΉλ 0,0 μ’νμ μκΈ°μ, this.x μ this.y μλ 0, 0
this.width, this.heigth μλ νλ μ΄μ΄μ ν¬κΈ°μΈ 70, 60 μ΄ λ΄κ²¨ μλ€.
λ°λΌμ bullet μ μ’νλ ( 0 + 35, 0) β (35,0) μ΄λ€. κ·Έλ¬λ©΄ μ€μ μλλꡬμ.
보쑰 κ°μ¬λμκ² λ¬Όμ΄λ³΄λ λ¬Έμ μ μ΄ λ΄ imageμ ν¬κΈ°λ₯Ό μκ°νμ§ λͺ»νλ κ²μ΄μλ€.. bullet μ΄λ―Έμ§μ μμμ 0.0 μ μΌμͺ½ μλ¨ λΆν° μμνλ μ . κ·Έλμ μ μ½λμ²λΌ μ€μμΌλ‘ μ°μμ§λ§ μ μ¬λ°± λ§νΌ λ¨μ΄μ Έ λ³΄μΈ κ²μ΄μλ€..
κ°μ¬λμ΄ ν΄κ²° λ°©λ²μΌλ‘ μ΄μμ λμ΄ μ λ° λ§νΌ λΉΌμ£Όλ©΄ λλ€κ³ ν΄μ£Όμ
μ
const bulletX = this.x + this.width / 2- 10;
μΌλ‘ λ°κΏλ³΄λ λ°λ‘
μ€μμΌλ‘ μ΄λνλ€ ~~ ν΄κ²° μ