game/prompt/64_ui_enhancement_and_asset...

2.4 KiB

64. UI 개선 및 에셋 시스템 복구 (UI Enhancements & Asset System Fixes)

1. 개요 (Overview)

이 작업은 사용자 경험(UX)을 저해하는 UI 요소(하단 알림)를 개선하고, 프로젝트 구조 변경 중 발생한 에셋 로딩 오류(404)를 해결하며, 상점 UI의 문법적 오류를 수정하는 데 중점을 두었습니다. 또한 적 이미지 표시 방식을 개선하여 시각적 완성도를 높였습니다.

2. 주요 변경 사항 (Key Changes)

A. Top-Aligned Toast Notification (ToastUtils)

  • 문제: 기존 SnackBar가 하단 네비게이션 바를 가려 사용자가 버튼을 조작하는 데 불편함이 있었음.
  • 해결: Overlay를 사용하여 화면 상단에 알림을 띄우는 ToastUtils.showTopToast를 구현.
  • 개선: Curves.easeOutBack 애니메이션 사용 시 Opacity 값이 1.0을 초과하여 발생하는 크래시 버그를 clamp(0.0, 1.0)으로 수정하여 해결.
  • 적용: BattleScreen, ShopUI 등 주요 화면의 모든 알림을 교체.

B. Enemy Asset System & UI

  • 이미지 로딩: CharacterStatusCard에서 적 이미지를 enemies.json의 경로(assets/images/enemies/)를 통해 동적으로 로드하도록 변경.
  • 크기 확대: 적 이미지의 표시 크기를 200x200으로 확대하여 시각적 비중을 높임.
  • 404 에러 수정: assets/images/enemies/ 폴더 내에 slime.png 등 다수의 이미지 파일이 누락되어 발생한 404 에러를, park.png를 플레이스홀더로 복사하여 해결. (추후 실제 리소스로 교체 필요)
  • Pubspec 업데이트: pubspec.yamlassets/images/enemies/ 경로를 명시적으로 선언.

C. Stage System UI

  • Tier 표시: BattleHeader에서 스테이지 진행에 따라 Tier 1(지하 불법 투기장), Tier 2(콜로세움), Tier 3(왕의 투기장) 텍스트가 표시되도록 로직 개선.
  • Boss 표시: 각 Tier의 마지막 스테이지(12, 24, 36...)에서 "BOSS" 라벨이 표시되도록 구현.

D. ShopUI Syntax Fixes

  • 버그 수정: ShopUI.dart에서 발생한 괄호 매칭 오류, 중괄호 누락, BattleProvider 전달 오류 등을 전면 수정하여 정상 동작하도록 복구.

3. 결과 (Result)

  • 알림이 더 이상 중요 UI를 가리지 않음.
  • 적 이미지가 정상적으로 로드되며(플레이스홀더 포함), 에러 로그가 제거됨.
  • 상점 기능이 정상화됨.