mirror of https://github.com/flutter/pinball.git
parent
4039a577d1
commit
da1cea1069
@ -0,0 +1,66 @@
|
||||
import 'package:flame/input.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:pinball_components/pinball_components.dart';
|
||||
import 'package:sandbox/stories/ball/basic_ball_game.dart';
|
||||
|
||||
class MultiballGame extends BallGame with KeyboardEvents {
|
||||
MultiballGame()
|
||||
: super(
|
||||
imagesFileNames: [
|
||||
Assets.images.multiball.a.active.keyName,
|
||||
Assets.images.multiball.a.inactive.keyName,
|
||||
Assets.images.multiball.b.active.keyName,
|
||||
Assets.images.multiball.b.inactive.keyName,
|
||||
Assets.images.multiball.c.active.keyName,
|
||||
Assets.images.multiball.c.inactive.keyName,
|
||||
Assets.images.multiball.d.active.keyName,
|
||||
Assets.images.multiball.d.inactive.keyName,
|
||||
],
|
||||
);
|
||||
|
||||
static const description = '''
|
||||
Shows how the Multiball are rendered.
|
||||
|
||||
- Tap anywhere on the screen to spawn a ball into the game.
|
||||
- Press space bar for animate state multiballs.
|
||||
''';
|
||||
|
||||
late final Multiball _multiballA;
|
||||
late final Multiball _multiballB;
|
||||
late final Multiball _multiballC;
|
||||
late final Multiball _multiballD;
|
||||
|
||||
@override
|
||||
Future<void> onLoad() async {
|
||||
await super.onLoad();
|
||||
|
||||
camera.followVector2(Vector2.zero());
|
||||
|
||||
await addAll([
|
||||
_multiballA = Multiball.a(),
|
||||
_multiballB = Multiball.b(),
|
||||
_multiballC = Multiball.c(),
|
||||
_multiballD = Multiball.d(),
|
||||
]);
|
||||
await traceAllBodies();
|
||||
}
|
||||
|
||||
@override
|
||||
KeyEventResult onKeyEvent(
|
||||
RawKeyEvent event,
|
||||
Set<LogicalKeyboardKey> keysPressed,
|
||||
) {
|
||||
if (event is RawKeyDownEvent &&
|
||||
event.logicalKey == LogicalKeyboardKey.space) {
|
||||
_multiballA.animate();
|
||||
_multiballB.animate();
|
||||
_multiballC.animate();
|
||||
_multiballD.animate();
|
||||
|
||||
return KeyEventResult.handled;
|
||||
}
|
||||
|
||||
return KeyEventResult.ignored;
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
import 'package:dashbook/dashbook.dart';
|
||||
import 'package:sandbox/common/common.dart';
|
||||
import 'package:sandbox/stories/multiball/multiball_game.dart';
|
||||
|
||||
void addMultiballStories(Dashbook dashbook) {
|
||||
dashbook.storiesOf('Multiball').addGame(
|
||||
title: 'Assets',
|
||||
description: MultiballGame.description,
|
||||
gameBuilder: (_) => MultiballGame(),
|
||||
);
|
||||
}
|
Loading…
Reference in new issue