mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-03 04:18:25 +08:00
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:
@ -3,6 +3,7 @@ import 'package:flame/effects.dart';
|
||||
import 'package:flame/extensions.dart';
|
||||
import 'package:flame/game.dart';
|
||||
import 'package:flame/input.dart';
|
||||
import 'package:flame/palette.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../../commons/square_component.dart';
|
||||
@ -16,19 +17,26 @@ class ScaleEffectGame extends BaseGame with TapDetector {
|
||||
square = SquareComponent()
|
||||
..position.setValues(200, 200)
|
||||
..anchor = Anchor.center;
|
||||
square.paint = BasicPalette.white.paint()..style = PaintingStyle.stroke;
|
||||
final childSquare = SquareComponent()
|
||||
..position = Vector2.all(70)
|
||||
..size = Vector2.all(20)
|
||||
..anchor = Anchor.center;
|
||||
|
||||
square.addChild(childSquare);
|
||||
add(square);
|
||||
}
|
||||
|
||||
@override
|
||||
void onTap() {
|
||||
final s = grow ? 300.0 : 100.0;
|
||||
final s = grow ? 3.0 : 1.0;
|
||||
|
||||
grow = !grow;
|
||||
square.addEffect(
|
||||
ScaleEffect(
|
||||
size: Vector2.all(s),
|
||||
speed: 250.0,
|
||||
curve: Curves.bounceInOut,
|
||||
scale: Vector2.all(s),
|
||||
speed: 2.0,
|
||||
curve: Curves.linear,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user