Files
Lukas Klingsbo 64a40ff641 Refactor joystick (#876)
* Refactor joystick

* Fix directional tests

* Joystick example

* Any PositionComponent can be used as knob and background

* Add MarginButtonComponent

* Fix JoystickExample

* Update joystick docs

* Fix joystick direction tests

* Fix effect tests

* Fix analyze issue

* Update docs

* Update docs

* Move joystick to input export

* Update packages/flame/lib/src/geometry/shape.dart

Co-authored-by: Luan Nico <luanpotter27@gmail.com>

* Add test and description for screenAngle

* Update examples/lib/stories/controls/joystick_player.dart

Co-authored-by: Erick <erickzanardoo@gmail.com>

* Update doc/input.md

Co-authored-by: Erick <erickzanardoo@gmail.com>

* controls -> input in examples to align with export file

* controls -> input

* Add simple joystick example

* Fix imports

* velocity -> relativeDelta

Co-authored-by: Luan Nico <luanpotter27@gmail.com>
Co-authored-by: Erick <erickzanardoo@gmail.com>
2021-07-15 12:00:41 +02:00

67 lines
1.6 KiB
Dart

import 'dart:ui';
import 'package:flame/components.dart';
import 'package:flame/game.dart';
import 'package:flame/input.dart';
class BasicAnimations extends BaseGame with TapDetector {
late Image creature;
@override
Future<void> onLoad() async {
creature = await images.load('animations/creature.png');
final animation = await loadSpriteAnimation(
'animations/chopper.png',
SpriteAnimationData.sequenced(
amount: 4,
textureSize: Vector2.all(48),
stepTime: 0.15,
),
);
final spriteSize = Vector2.all(100.0);
final animationComponent2 = SpriteAnimationComponent(
animation: animation,
size: spriteSize,
);
animationComponent2.x = size.x / 2 - spriteSize.x;
animationComponent2.y = spriteSize.y;
final reversedAnimationComponent = SpriteAnimationComponent(
animation: animation.reversed(),
size: spriteSize,
);
reversedAnimationComponent.x = size.x / 2;
reversedAnimationComponent.y = spriteSize.y;
add(animationComponent2);
add(reversedAnimationComponent);
}
void addAnimation(Vector2 position) {
final size = Vector2(291, 178);
final animationComponent = SpriteAnimationComponent.fromFrameData(
creature,
SpriteAnimationData.sequenced(
amount: 18,
amountPerRow: 10,
textureSize: size,
stepTime: 0.15,
loop: false,
),
size: size,
removeOnFinish: true,
);
animationComponent.position = position - size / 2;
add(animationComponent);
}
@override
void onTapDown(TapDownInfo info) {
addAnimation(info.eventPosition.game);
}
}