feat(ui): 일시 정지 버튼 추가 및 배속 버그 수정

- 게임 중 일시 정지/재개 버튼 추가 (테마 버튼 옆)
- 5x 배속이 2x와 동일하게 작동하던 버그 수정
  - progress_service.dart clamp 제한을 100ms에서 500ms로 확장
- ASCII 애니메이션 40x8 규격 통일
  - townAnimation, walkingAnimation, levelUpAnimation 등 8줄로 통일
  - 레거시 애니메이션 TextAlign.left로 정렬 문제 수정
- 캐릭터 프레임 구조 통일 (머리/몸통/다리 3줄)
- 몬스터 크기 enum 실제 프레임 줄 수와 일치하도록 수정
This commit is contained in:
JiWoong Sul
2025-12-15 17:07:00 +09:00
parent 598c25e4c9
commit e7fb8a4adb
10 changed files with 529 additions and 378 deletions

View File

@@ -59,6 +59,7 @@ CharacterFrame getCharacterFrame(BattlePhase phase, int subFrame) {
// ============================================================================
// 대기 프레임 (숨쉬기 애니메이션) - 4프레임, 심플 3줄 스타일, 폭 6자
// 구조: [머리, 몸통+팔, 다리]
// ============================================================================
const _idleFrames = [
CharacterFrame([
@@ -85,41 +86,38 @@ const _idleFrames = [
// ============================================================================
// 준비 프레임 (무기 들기) - 3프레임, 심플 3줄 스타일, 폭 6자
// 구조: [머리, 몸통+팔, 다리]
// ============================================================================
const _prepareFrames = [
CharacterFrame([
r' \o ',
r' |\ ',
r' o ',
r' \|\ ',
r' / \ ',
]),
CharacterFrame([
r' _ ',
r' \o ',
r' o_ ',
r' \| ',
r' / \ ',
]),
CharacterFrame([
r' \_ ',
r' \o/ ',
r' o/ ',
r' \| ',
r' / \ ',
]),
];
// ============================================================================
// 공격 프레임 (전진 + 휘두르기) - 5프레임, 심플 3줄 스타일
// 구조: [머리, 몸통+팔+무기, 다리]
// ============================================================================
const _attackFrames = [
CharacterFrame([
r' \_/ ',
r' o ',
r' o\ ',
r' /| ',
r' / \ ',
]),
CharacterFrame([
r' _/ ',
r' o ',
r' /|\ ',
]),
CharacterFrame([
r' o-- ',
r' o- ',
r' /| ',
r' / \ ',
]),
@@ -130,13 +128,19 @@ const _attackFrames = [
]),
CharacterFrame([
r' o ',
r' /|\_ ',
r' /|-=>',
r' / \ ',
]),
CharacterFrame([
r' o ',
r' /|\ ',
r' / \ ',
]),
];
// ============================================================================
// 히트 프레임 (공격 명중) - 3프레임, 심플 3줄 스타일
// 구조: [머리, 몸통+팔+이펙트, 다리]
// ============================================================================
const _hitFrames = [
CharacterFrame([
@@ -158,6 +162,7 @@ const _hitFrames = [
// ============================================================================
// 복귀 프레임 - 3프레임, 심플 3줄 스타일
// 구조: [머리, 몸통+팔, 다리]
// ============================================================================
const _recoverFrames = [
CharacterFrame([