본문 바로가기
Programming/Godot

고도엔진 2D 슈팅게임 - 6 아머, 파괴

by Wilkyway 2022. 1. 7.
반응형

<ship.gd> 수정

- 스크립트에 체력(armor) 변수를 설정

- "ship"그룹에 추가

- 체력이 0 이하로 가면 삭제되는 set_armor함수 추가

<enemy.gd> 수정

- 스크립트에 체력(armor) 변수를 설정

- "enemy"그룹에 추가

- 체력이 0 이하로 가면 삭제되는 set_armor함수 추가

- enemy_kamikaze.tscn의 Armor값은 2로 설정

- enemy_clever.tscn의 Armor값은 6으로 설정

<laser 수정>

- laser_ship.tscn을 불러와서 기존의 laser.gd스크립트를 제거

- 새로운 스크립트 laser_ship.gd 생성

- 속도를 -350으로 설정

<laser_ship.gd>

- "area_enter"이벤트 발생 시 "_on_area_enter"함수와 연결

- 접촉한 외부물체가 "enemy"이면 Armor를 -1 차감

- 플레어 생성

- 레이저 자체는 삭제됨(queue_free())

- 아직 enemy가 죽지 않음. laser_ship.tscn의 상위인 laser.tscn의 shape에 아무것도 지정되지 않음

- laser.tscn > shape에 RectangleShape2D 설정

<laser_enemy.gd>

- laser_enemy.tscn에서 기존의 스크립트 laser.gd 제거

- 새로운 스크립트 laser_enemy.gd 생성

- 기존의 laser_ship.gd의 내용을 복사해옴

- 충돌 감지 대상만 "enemy" -> "ship"으로 변경

- laser_enemy의 속도는 150으로 재설정

 

- 마지막으로 enemy.tscn에서

- enemy와 충돌했을 때에 ship의 armor를 -1 차감하고

- 충돌한 enemy는 사라지는 함수(_on_area_enter) 구현

반응형

댓글