refactor: snapped on resize

pull/358/head
alestiago 3 years ago
parent 40ba494d44
commit f862b0af36

@ -28,6 +28,8 @@ class CameraFocusingBehavior extends Component
GameStatus? _activeFocus; GameStatus? _activeFocus;
Vector2? _previousSize;
@override @override
bool listenWhen(GameState? previousState, GameState newState) { bool listenWhen(GameState? previousState, GameState newState) {
return previousState?.status != newState.status; return previousState?.status != newState.status;
@ -38,6 +40,10 @@ class CameraFocusingBehavior extends Component
@override @override
void onGameResize(Vector2 size) { void onGameResize(Vector2 size) {
super.onGameResize(size);
if (size == _previousSize) return;
_previousSize = size;
_foci.addAll( _foci.addAll(
{ {
GameStatus.waiting: _FocusData( GameStatus.waiting: _FocusData(
@ -56,10 +62,8 @@ class CameraFocusingBehavior extends Component
); );
if (_activeFocus != null) { if (_activeFocus != null) {
_zoomTo(_activeFocus!); _snap(_activeFocus!);
} }
super.onGameResize(size);
} }
@override @override
@ -69,8 +73,7 @@ class CameraFocusingBehavior extends Component
} }
void _snap(GameStatus focusKey) { void _snap(GameStatus focusKey) {
_activeFocus = focusKey; final focusData = _foci[_activeFocus = focusKey]!;
final focusData = _foci[_activeFocus]!;
gameRef.camera gameRef.camera
..speed = 100 ..speed = 100
@ -79,8 +82,7 @@ class CameraFocusingBehavior extends Component
} }
void _zoomTo(GameStatus focusKey) { void _zoomTo(GameStatus focusKey) {
_activeFocus = focusKey; final focusData = _foci[_activeFocus = focusKey]!;
final focusData = _foci[_activeFocus]!;
final zoom = CameraZoom(value: focusData.zoom); final zoom = CameraZoom(value: focusData.zoom);
zoom.completed.then((_) { zoom.completed.then((_) {

Loading…
Cancel
Save