이벤트 함수는 특정 상황이 발생했을 때 자동으로 호출되는 함수입니다.
여러분이 직접 호출하지 않아도, 게임이 알아서 상황에 맞게 실행해줘요!
💡 비유하자면:
• run() = 내가 직접 하는 행동 (걷기, 돌기, 발사)
• 이벤트 함수 = 누군가 날 때렸을 때 자동으로 반응하는 것! 👊💥
| 함수명 | 언제 호출되나요? |
|---|---|
onScan(enemies) |
적을 발견했을 때 (레이더 범위 내) |
onHitWall() |
벽이나 장애물에 부딪혔을 때 |
onHitByBullet(bullet) |
적의 총알에 맞았을 때 |
레이더 범위(400px) 안에 적이 있으면 자동으로 호출됩니다.
enemies는 발견된 적들의 배열이에요. 가장 가까운 적이 enemies[0]입니다.
onScan(enemies) {
let target = enemies[0]; // 가장 가까운 적
this.turnGunTo(target.aimAngle); // 적 방향으로 포탑 조준
this.fire(); // 발사!
}
💡 꿀팁: target.aimAngle은 내가 적을 향해 조준해야 할 각도예요!
벽이나 장애물에 충돌하면 자동으로 호출됩니다.
onHitWall() {
this.moveBackward(30); // 뒤로 빠져나오기
this.turnRight(90); // 방향 바꾸기
}
벽에 걸려서 아무것도 못하는 상황을 방지하는 데 유용해요!
적의 총알에 맞으면 자동으로 호출됩니다.
bullet 객체에는 damage(데미지)와 shooterName(공격자 이름) 정보가 있어요.
onHitByBullet(bullet) {
this.log("맞았다! " + bullet.damage + " 데미지!");
this.moveBackward(50); // 피하기!
this.turnRight(45); // 다른 방향으로
}
this.fire(), this.stop() 등을 사용할 수 있어요.run()과 별개로 동작해요.this.stop()을 먼저 호출하세요!