Post

2026-03-30 TIL (25일차)

2026-03-30 TIL (25일차)

팀프로젝트

보스 배틀씬 구현

일반 몬스터와 차별화되는 최종 보스 “취업” 전용 배틀씬과 엔딩 흐름을 완성했습니다.

  • 로직 처리 분기
    • 보스 일 경우 일반 텍스트 대신 보스 전용텍스트가 출력되도록 처리했습니다.
    • 보스 처치 시 일반 승리 상태가 아닌 보스 전용 승리 상태로 전환됩니다.
    • 승리 텍스트 확인 후 SceneManager를 통해 엔딩 씬(EndScene)으로 넘어가도록 설정했습니다.
  • UI 연출 (컨셉 극대화)
    • 플레이어 캐릭터와 몬스터 및 보스 아스키 아트를 교체 했습니다.


골드 및 몬스터 아이템 상호작용/출력 안정화

  • 팀원이 구현한 몬스터와 플레이어의 상호작용 시스템을 BattleScene에 구현했습니다.


비전투 상태 아이템 사용 제한

  • 구현 내용: 전투 중이 아닐 때 소비 아이템을 사용하지 못하도록 예외 처리를 추가했습니다.
  • 로직 처리: InventoryScene에서 아이템 선택 시, 플레이어의 현재 상태(player->bIsPlayerBattle())를 확인하여 전투 중인지 판별합니다.
  • UI 피드백 (UX 개선): 전투 상태가 아니라면 상태를 전환시켜 “전투 중에만 사용할 수 있습니다!”라는 경고 팝업창이 출력되도록 구현했습니다.


Scene 렌더링 리팩토링 및 최적화 (UI 개선)

화면이 깜빡거리는 현상 및 텍스트가 잔상이 남기는걸 없애고 개선했습니다.

  • 화면 깜빡임 완벽 제거
    • 매 프레임마다 system("cls")로 전체 화면을 지우던 방식을 변경했습니다.
    • 대신 변경된 팝업창이나 화살표 위치만 공백(" ")으로 덮어씌워 지우는(Overwrite) 부분 렌더링 최적화를 적용했습니다.
  • 렌더링 마지막 부분에 Console_gotoxy(0 , 0);
    • 보이지 않는 커서가 마지막으로 출력한 글자 바로 뒤에 남아있게 되서 윈도우 콘솔 창이 마지막 커서 위치를 화면에 업데이트 할려다가 생기는 텍스트 잔상 현상을 Console_gotoxy(0 , 0)으로 옮겨서 잔상을 제거했습니다.
This post is licensed under CC BY 4.0 by the author.