◀ 돌아가기 (Main)

⚡ Event Functions (이벤트 함수)

🤔 이벤트 함수가 뭐예요?

이벤트 함수는 특정 상황이 발생했을 때 자동으로 호출되는 함수입니다.
여러분이 직접 호출하지 않아도, 게임이 알아서 상황에 맞게 실행해줘요!

💡 비유하자면:
run() = 내가 직접 하는 행동 (걷기, 돌기, 발사)
이벤트 함수 = 누군가 날 때렸을 때 자동으로 반응하는 것! 👊💥

📋 이벤트 함수 목록

함수명 언제 호출되나요?
onScan(enemies) 적을 발견했을 때 (레이더 범위 내)
onHitWall() 벽이나 장애물에 부딪혔을 때
onHitByBullet(bullet) 적의 총알에 맞았을 때

📡 onScan(enemies) - 적 발견!

레이더 범위(400px) 안에 적이 있으면 자동으로 호출됩니다.

enemies는 발견된 적들의 배열이에요. 가장 가까운 적이 enemies[0]입니다.

onScan(enemies) {
    let target = enemies[0];        // 가장 가까운 적
    this.turnGunTo(target.aimAngle); // 적 방향으로 포탑 조준
    this.fire();                     // 발사!
}

💡 꿀팁: target.aimAngle은 내가 적을 향해 조준해야 할 각도예요!

🧱 onHitWall() - 벽에 부딪힘!

벽이나 장애물에 충돌하면 자동으로 호출됩니다.

onHitWall() {
    this.moveBackward(30);  // 뒤로 빠져나오기
    this.turnRight(90);     // 방향 바꾸기
}

벽에 걸려서 아무것도 못하는 상황을 방지하는 데 유용해요!

💥 onHitByBullet(bullet) - 피격!

적의 총알에 맞으면 자동으로 호출됩니다.

bullet 객체에는 damage(데미지)와 shooterName(공격자 이름) 정보가 있어요.

onHitByBullet(bullet) {
    this.log("맞았다! " + bullet.damage + " 데미지!");
    this.moveBackward(50);   // 피하기!
    this.turnRight(45);      // 다른 방향으로
}

⚠️ 주의사항