Scale for PositionComponent (#892)

* Draft of PositionComponent.scale

* Use matrix transformations

* Update tests to take matrix transform into consideration

* Add tests for collision detection with scale

* Rename ScaleEffect to SizeEffect

* Use transform matrix to prepare canvas

* Fix scaledSizeCache

* Add changelog entries and docs

* Dartdoc on public access methods

* Update packages/flame/CHANGELOG.md

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>

* Move cache classes to own directory

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
This commit is contained in:
Lukas Klingsbo
2021-08-06 21:59:52 +02:00
committed by GitHub
parent 4860cac87f
commit 54fbd260bc
31 changed files with 497 additions and 150 deletions

View File

@ -1,12 +1,14 @@
import 'package:flame/components.dart';
import 'package:flame/game.dart';
import 'package:flame/input.dart';
class Square extends PositionComponent {
Square(Vector2 position, Vector2 size, {double angle = 0}) {
this.position.setFrom(position);
this.size.setFrom(size);
this.angle = angle;
}
Square(Vector2 position, Vector2 size, {double angle = 0})
: super(
position: position,
size: size,
angle: angle,
);
}
class ParentSquare extends Square with HasGameRef {
@ -31,7 +33,7 @@ class ParentSquare extends Square with HasGameRef {
}
}
class Composability extends BaseGame {
class Composability extends BaseGame with TapDetector {
late ParentSquare _parent;
@override
@ -49,4 +51,10 @@ class Composability extends BaseGame {
super.update(dt);
_parent.angle += dt;
}
@override
void onTap() {
super.onTap();
_parent.scale = Vector2.all(2.0);
}
}