2차 프로젝트 일지 - 6일차
6일차: 버그 수정, UI 고도화, 난이도 조정
UI 수정
- 헤드업 디스플레이 잘 보이게 우측 세로로 배치
- 플레이어 상태 텍스트 인코딩(
e.g. 쳌쳌쳌쳌쳌쳌쳌쳌婕³) 박살나던 문제 = 문자 메모리 사이즈, 버퍼 재활용(dangling pointer) 때문이었음.
- 스테이지 클리어, 게임 오버 팝업 추가해서 구분감 줬음
적 AI 고도화
짧은 시야
- 현상: 위험 평가 후 탈출도 1칸씩만 이동요청하고 있었음(FleeFromDangerAction)
- 해결: escapePath를 계산해 Enemy 멤버변수로 저장, FleeFromDangerAction 실행 중 escapePath가 있을 땐 escapePath대로 탈출하도록 동기성 보장
멍청함
- 현상1: 물풍선 설치 후에 설치 자리에서 움직이지 않고 피격당해버림(IsDangerNearbyCondition)
- 이유: 위험감수 액션 전 위험평가 범위가 1칸이어서 폭발 범위가 2칸 이상일 땐 탈출을 포기함😅
- 해결: 체크 범위를 3칸으로 늘리고, 해당 타일에 예상 폭발 시간과 도착시간을 비교해 이동할 가치가 있는지 판단하도록 함
- 현상2: 물풍선을 최초로 설치 후 피신한 장소에 두번째 물풍선을 곧바로 설치해 피하지 못하고 죽어버림(ExploitDangerAction)
- 이유: 현재 위치가 물풍선을 놓아도 안전한지 여부를 평가하는 로직이 없어 안전을 최우선하지 않고 박스 파괴를 위해서만 물풍선을 설치했음
- 해결: WouldBeSafeAfterPlacingWaterBalloon 함수를 만들어 설치했을 때의 폭발범위, 최소 탈출경로 유무, 기존 예상 폭발로로 설치해도 되는지를 판단하게 함