mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-02 11:43:19 +08:00
This PR adds the following lint rules to our list: ``` always_put_required_named_parameters_first avoid_multiple_declarations_per_line avoid_positional_boolean_parameters avoid_returning_null_for_void avoid_returning_this avoid_unnecessary_containers enable_null_safety library_private_types_in_public_api no_leading_underscores_for_library_prefixes no_leading_underscores_for_local_identifiers prefer_null_aware_method_calls tighten_type_of_initializing_formals unnecessary_late use_setters_to_change_properties ``` And these rules were considered, and some changes were made according to them as a clean-up, but in many places they didn't make sense (`prefer_asserts_with_message` I would have included, but there were too many places that needed to be changes): ``` collection_methods_unrelated_type prefer_asserts_with_message avoid_renaming_method_parameters ```
66 lines
1.6 KiB
Dart
66 lines
1.6 KiB
Dart
import 'package:examples/commons/ember.dart';
|
|
import 'package:flame/components.dart';
|
|
import 'package:flame/experimental.dart';
|
|
import 'package:flame/game.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
class DoubleTapCallbacksExample extends FlameGame with DoubleTapCallbacks {
|
|
static const String description = '''
|
|
In this example, we show how you can use the `DoubleTapCallbacks` mixin on
|
|
a `Component`. Double tap Ember and see her color changing.
|
|
The example also adds white circles when double-tapping on the game area.
|
|
''';
|
|
|
|
@override
|
|
Future<void> onLoad() async {
|
|
children.register<DoubleTappableEmber>();
|
|
}
|
|
|
|
@override
|
|
void onGameResize(Vector2 size) {
|
|
children
|
|
.query<DoubleTappableEmber>()
|
|
.forEach((element) => element.removeFromParent());
|
|
add(DoubleTappableEmber(position: size / 2));
|
|
|
|
super.onGameResize(size);
|
|
}
|
|
|
|
@override
|
|
void onDoubleTapDown(DoubleTapDownEvent event) {
|
|
add(
|
|
CircleComponent(
|
|
radius: 30,
|
|
position: event.localPosition,
|
|
anchor: Anchor.center,
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
class DoubleTappableEmber extends Ember with DoubleTapCallbacks {
|
|
@override
|
|
bool debugMode = true;
|
|
|
|
DoubleTappableEmber({Vector2? position})
|
|
: super(
|
|
position: position ?? Vector2.all(100),
|
|
size: Vector2.all(100),
|
|
);
|
|
|
|
@override
|
|
void onDoubleTapUp(DoubleTapEvent event) {
|
|
debugColor = Colors.greenAccent;
|
|
}
|
|
|
|
@override
|
|
void onDoubleTapCancel(DoubleTapCancelEvent event) {
|
|
debugColor = Colors.red;
|
|
}
|
|
|
|
@override
|
|
void onDoubleTapDown(DoubleTapDownEvent event) {
|
|
debugColor = Colors.blue;
|
|
}
|
|
}
|