fix(cinematic): 시네마틱/클리어 다이얼로그 표시 타이밍 수정

- 리스너 콜백 중 showDialog 호출로 인한 게임 멈춤 현상 수정
- addPostFrameCallback으로 다음 프레임에서 다이얼로그 표시
- 위젯 트리가 안정된 상태에서 showDialog 실행
This commit is contained in:
JiWoong Sul
2025-12-17 19:23:27 +09:00
parent 810bf6867d
commit 27e21bb064

View File

@@ -74,11 +74,16 @@ class _GamePlayScreenState extends State<GamePlayScreen>
_lastAct = newAct;
// Phase 10: 엔딩 도달 시 클리어 처리 (시네마틱 대신 클리어 다이얼로그)
// 다음 프레임에서 실행 (리스너 콜백 중 showDialog 문제 방지)
if (newAct == StoryAct.ending && state.traits.level >= 100) {
_handleGameClear(state);
WidgetsBinding.instance.addPostFrameCallback((_) {
if (mounted) _handleGameClear(state);
});
} else {
// 일반 Act 전환 시 시네마틱 표시
_showCinematicForAct(newAct);
WidgetsBinding.instance.addPostFrameCallback((_) {
if (mounted) _showCinematicForAct(newAct);
});
}
}
}