revert: changed CameraFocusingBehavior logic

pull/451/head
alestiago 3 years ago
parent 32e3e8d641
commit feca96351c

@ -1,5 +1,3 @@
import 'dart:math';
import 'package:flame/components.dart'; import 'package:flame/components.dart';
import 'package:flame/game.dart'; import 'package:flame/game.dart';
import 'package:flame_bloc/flame_bloc.dart'; import 'package:flame_bloc/flame_bloc.dart';
@ -30,7 +28,7 @@ class CameraFocusingBehavior extends Component
GameStatus? _activeFocus; GameStatus? _activeFocus;
final _previousSize = Vector2.zero(); final Vector2 _previousSize = Vector2.zero();
@override @override
bool listenWhen(GameState? previousState, GameState newState) { bool listenWhen(GameState? previousState, GameState newState) {
@ -43,30 +41,25 @@ class CameraFocusingBehavior extends Component
@override @override
void onGameResize(Vector2 size) { void onGameResize(Vector2 size) {
super.onGameResize(size); super.onGameResize(size);
if (size == _previousSize) { if (size == _previousSize) return;
return;
}
_previousSize.setFrom(size); _previousSize.setFrom(size);
final maxWidth = size.x / 90; _foci.addAll(
final maxHeight = size.y / 160; {
GameStatus.waiting: _FocusData(
final scale = min(maxHeight, maxWidth); zoom: size.y / 175,
position: _foci[GameStatus.waiting]?.position ?? Vector2(0, -112),
_foci.addAll({ ),
GameStatus.waiting: _FocusData( GameStatus.playing: _FocusData(
zoom: scale + (maxWidth > maxHeight ? 0.3 : -0.5), zoom: size.y / 165,
position: Vector2(0, -112), position: _foci[GameStatus.playing]?.position ?? Vector2(0, -7.8),
), ),
GameStatus.playing: _FocusData( GameStatus.gameOver: _FocusData(
zoom: scale + (maxWidth > maxHeight ? 0.5 : -0.2), zoom: size.y / 100,
position: Vector2(0, -7.8), position: _foci[GameStatus.gameOver]?.position ?? Vector2(0, -111),
), ),
GameStatus.gameOver: _FocusData( },
zoom: scale + (maxWidth > maxHeight ? 2.8 : 3.3), );
position: Vector2(0, -111),
),
});
if (_activeFocus != null) { if (_activeFocus != null) {
_snap(_activeFocus!); _snap(_activeFocus!);

@ -53,20 +53,6 @@ void main() {
}, },
); );
flameTester.test('sets zoom on resize', (game) async {
final behavior = CameraFocusingBehavior();
await game.ensureAdd(
FlameBlocProvider<GameBloc, GameState>.value(
value: GameBloc(),
children: [behavior],
),
);
game.onGameResize(game.canvasSize * 2);
expect(game.camera.zoom, equals(6.55));
});
flameTester.test( flameTester.test(
'listenWhen only listens when status changes', 'listenWhen only listens when status changes',
(game) async { (game) async {

Loading…
Cancel
Save