From 6405068bdec68e5340ba37e595bf3f2ffeab8c5c Mon Sep 17 00:00:00 2001 From: Erick Zanardo Date: Tue, 23 May 2023 09:01:14 -0300 Subject: [PATCH 1/6] fix: tiled component orthogonal test --- packages/flame_tiled/lib/src/tiled_component.dart | 1 + packages/flame_tiled/test/tiled_test.dart | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/flame_tiled/lib/src/tiled_component.dart b/packages/flame_tiled/lib/src/tiled_component.dart index c3ed090a04..76b3bb890d 100644 --- a/packages/flame_tiled/lib/src/tiled_component.dart +++ b/packages/flame_tiled/lib/src/tiled_component.dart @@ -66,6 +66,7 @@ class TiledComponent extends PositionComponent // Automatically use the first attached CameraComponent camera if it's not // already set.. tileMap.camera ??= gameRef.children.query().firstOrNull; + tileMap.handleResize(size); } @override diff --git a/packages/flame_tiled/test/tiled_test.dart b/packages/flame_tiled/test/tiled_test.dart index e0bbc321cd..e6e88c7d79 100644 --- a/packages/flame_tiled/test/tiled_test.dart +++ b/packages/flame_tiled/test/tiled_test.dart @@ -411,6 +411,7 @@ void main() { // Need to initialize a game and call `onLoad` and `onGameResize` to // get the camera and canvas sizes all initialized final game = FlameGame(children: [world, cameraComponent]); + component.onGameResize(mapSizePx); await game.ready(); cameraComponent.viewfinder.position = Vector2(150, 20); }); @@ -420,7 +421,6 @@ void main() { expect(component.size, mapSizePx); }); - // TODO(Erick): Don't skip when it is solved. test( 'renders', () async { @@ -428,7 +428,6 @@ void main() { expect(pngData, matchesGoldenFile('goldens/orthogonal.png')); }, - skip: true, ); }); From f8505149f0f20dfe9a638b0dac3bedbb9ea92cbb Mon Sep 17 00:00:00 2001 From: Erick Zanardo Date: Tue, 23 May 2023 09:21:38 -0300 Subject: [PATCH 2/6] testing --- packages/flame_tiled/test/tiled_test.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/flame_tiled/test/tiled_test.dart b/packages/flame_tiled/test/tiled_test.dart index e6e88c7d79..27fd1c6fe5 100644 --- a/packages/flame_tiled/test/tiled_test.dart +++ b/packages/flame_tiled/test/tiled_test.dart @@ -412,8 +412,9 @@ void main() { // get the camera and canvas sizes all initialized final game = FlameGame(children: [world, cameraComponent]); component.onGameResize(mapSizePx); - await game.ready(); cameraComponent.viewfinder.position = Vector2(150, 20); + await component.onLoad(); + await game.ready(); }); test('component size', () { From 0865dcd9dec467ed91d4e92e55248f0a62565721 Mon Sep 17 00:00:00 2001 From: Erick Zanardo Date: Thu, 25 May 2023 22:09:01 -0300 Subject: [PATCH 3/6] trying --- packages/flame_tiled/lib/src/tiled_component.dart | 1 - packages/flame_tiled/test/tiled_test.dart | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/flame_tiled/lib/src/tiled_component.dart b/packages/flame_tiled/lib/src/tiled_component.dart index 76b3bb890d..c3ed090a04 100644 --- a/packages/flame_tiled/lib/src/tiled_component.dart +++ b/packages/flame_tiled/lib/src/tiled_component.dart @@ -66,7 +66,6 @@ class TiledComponent extends PositionComponent // Automatically use the first attached CameraComponent camera if it's not // already set.. tileMap.camera ??= gameRef.children.query().firstOrNull; - tileMap.handleResize(size); } @override diff --git a/packages/flame_tiled/test/tiled_test.dart b/packages/flame_tiled/test/tiled_test.dart index 27fd1c6fe5..232504ca30 100644 --- a/packages/flame_tiled/test/tiled_test.dart +++ b/packages/flame_tiled/test/tiled_test.dart @@ -406,13 +406,14 @@ void main() { final world = World(children: [component]); final cameraComponent = CameraComponent(world: world); - cameraComponent.viewfinder.anchor = Anchor.topLeft; // Need to initialize a game and call `onLoad` and `onGameResize` to // get the camera and canvas sizes all initialized final game = FlameGame(children: [world, cameraComponent]); - component.onGameResize(mapSizePx); + cameraComponent.viewfinder.anchor = Anchor.topLeft; cameraComponent.viewfinder.position = Vector2(150, 20); + game.onGameResize(mapSizePx); + component.onGameResize(mapSizePx); await component.onLoad(); await game.ready(); }); From c31fe4fe0648b8ad77dd55bb570261ad80cc8fb8 Mon Sep 17 00:00:00 2001 From: Erick Zanardo Date: Thu, 25 May 2023 22:24:08 -0300 Subject: [PATCH 4/6] Lukas, check this out --- .../lib/src/renderable_layers/renderable_layer.dart | 12 ++++++++++-- packages/flame_tiled/test/tiled_test.dart | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/flame_tiled/lib/src/renderable_layers/renderable_layer.dart b/packages/flame_tiled/lib/src/renderable_layers/renderable_layer.dart index 7a18974fdf..71e9adf067 100644 --- a/packages/flame_tiled/lib/src/renderable_layers/renderable_layer.dart +++ b/packages/flame_tiled/lib/src/renderable_layers/renderable_layer.dart @@ -109,8 +109,16 @@ abstract class RenderableLayer { final anchor = camera.viewfinder.anchor; final cameraX = camera.viewfinder.position.x; final cameraY = camera.viewfinder.position.y; - final viewportCenterX = camera.viewport.size.x * anchor.x; - final viewportCenterY = camera.viewport.size.y * anchor.y; + final viewportCenterX = camera.viewport.size.x / 2; + final viewportCenterY = camera.viewport.size.y / 2; + + if (parent is GroupLayer) { + print(layer.name); + print(parallaxX); + print(parallaxY); + print(viewportCenterX); + print(viewportCenterY); + } // Due to how Tiled treats the center of the view as the reference // point for parallax positioning (see Tiled docs), we need to offset the diff --git a/packages/flame_tiled/test/tiled_test.dart b/packages/flame_tiled/test/tiled_test.dart index 232504ca30..8b956b7add 100644 --- a/packages/flame_tiled/test/tiled_test.dart +++ b/packages/flame_tiled/test/tiled_test.dart @@ -412,6 +412,7 @@ void main() { final game = FlameGame(children: [world, cameraComponent]); cameraComponent.viewfinder.anchor = Anchor.topLeft; cameraComponent.viewfinder.position = Vector2(150, 20); + cameraComponent.viewport.size = mapSizePx.clone(); game.onGameResize(mapSizePx); component.onGameResize(mapSizePx); await component.onLoad(); From d8740168b8c67eed0e4a6fa0ffe0652d89fec900 Mon Sep 17 00:00:00 2001 From: Erick Zanardo Date: Tue, 30 May 2023 20:47:13 -0300 Subject: [PATCH 5/6] cleanup --- .../lib/src/renderable_layers/renderable_layer.dart | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/flame_tiled/lib/src/renderable_layers/renderable_layer.dart b/packages/flame_tiled/lib/src/renderable_layers/renderable_layer.dart index 71e9adf067..ced969fbde 100644 --- a/packages/flame_tiled/lib/src/renderable_layers/renderable_layer.dart +++ b/packages/flame_tiled/lib/src/renderable_layers/renderable_layer.dart @@ -106,20 +106,11 @@ abstract class RenderableLayer { /// position. /// https://doc.mapeditor.org/en/latest/manual/layers/#parallax-scrolling-factor void applyParallaxOffset(Canvas canvas, CameraComponent camera) { - final anchor = camera.viewfinder.anchor; final cameraX = camera.viewfinder.position.x; final cameraY = camera.viewfinder.position.y; final viewportCenterX = camera.viewport.size.x / 2; final viewportCenterY = camera.viewport.size.y / 2; - if (parent is GroupLayer) { - print(layer.name); - print(parallaxX); - print(parallaxY); - print(viewportCenterX); - print(viewportCenterY); - } - // Due to how Tiled treats the center of the view as the reference // point for parallax positioning (see Tiled docs), we need to offset the // entire layer From 113f91271175ad90fd67773b85780df54c8ecc7a Mon Sep 17 00:00:00 2001 From: Erick Zanardo Date: Tue, 6 Jun 2023 08:54:34 -0300 Subject: [PATCH 6/6] applying anchor again --- .../lib/src/renderable_layers/renderable_layer.dart | 5 +++-- packages/flame_tiled/test/tiled_test.dart | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/flame_tiled/lib/src/renderable_layers/renderable_layer.dart b/packages/flame_tiled/lib/src/renderable_layers/renderable_layer.dart index ced969fbde..7a18974fdf 100644 --- a/packages/flame_tiled/lib/src/renderable_layers/renderable_layer.dart +++ b/packages/flame_tiled/lib/src/renderable_layers/renderable_layer.dart @@ -106,10 +106,11 @@ abstract class RenderableLayer { /// position. /// https://doc.mapeditor.org/en/latest/manual/layers/#parallax-scrolling-factor void applyParallaxOffset(Canvas canvas, CameraComponent camera) { + final anchor = camera.viewfinder.anchor; final cameraX = camera.viewfinder.position.x; final cameraY = camera.viewfinder.position.y; - final viewportCenterX = camera.viewport.size.x / 2; - final viewportCenterY = camera.viewport.size.y / 2; + final viewportCenterX = camera.viewport.size.x * anchor.x; + final viewportCenterY = camera.viewport.size.y * anchor.y; // Due to how Tiled treats the center of the view as the reference // point for parallax positioning (see Tiled docs), we need to offset the diff --git a/packages/flame_tiled/test/tiled_test.dart b/packages/flame_tiled/test/tiled_test.dart index 8b956b7add..83b5f267d7 100644 --- a/packages/flame_tiled/test/tiled_test.dart +++ b/packages/flame_tiled/test/tiled_test.dart @@ -410,7 +410,7 @@ void main() { // Need to initialize a game and call `onLoad` and `onGameResize` to // get the camera and canvas sizes all initialized final game = FlameGame(children: [world, cameraComponent]); - cameraComponent.viewfinder.anchor = Anchor.topLeft; + cameraComponent.viewfinder.anchor = Anchor.center; cameraComponent.viewfinder.position = Vector2(150, 20); cameraComponent.viewport.size = mapSizePx.clone(); game.onGameResize(mapSizePx);