mirror of
https://github.com/flame-engine/flame.git
synced 2025-10-29 16:05:47 +08:00
This PR adds a new mixin on Component. When attached to a component, it allows scaling the delta time of that component as well as all its children by a non-negative factor. The idea is to allows slowing down or speeding up the gameplay by change the scaling factor. Note: This approach works only for framerate independent game logic. Code in update() that is not dependent on delta time will remain unaffected by time scale.
81 lines
3.0 KiB
Dart
81 lines
3.0 KiB
Dart
import 'package:dashbook/dashbook.dart';
|
|
import 'package:examples/commons/commons.dart';
|
|
import 'package:examples/stories/components/clip_component_example.dart';
|
|
import 'package:examples/stories/components/components_notifier_example.dart';
|
|
import 'package:examples/stories/components/components_notifier_provider_example.dart';
|
|
import 'package:examples/stories/components/composability_example.dart';
|
|
import 'package:examples/stories/components/debug_example.dart';
|
|
import 'package:examples/stories/components/game_in_game_example.dart';
|
|
import 'package:examples/stories/components/look_at_example.dart';
|
|
import 'package:examples/stories/components/look_at_smooth_example.dart';
|
|
import 'package:examples/stories/components/priority_example.dart';
|
|
import 'package:examples/stories/components/time_scale_example.dart';
|
|
import 'package:flame/game.dart';
|
|
|
|
void addComponentsStories(Dashbook dashbook) {
|
|
dashbook.storiesOf('Components')
|
|
..add(
|
|
'Composability',
|
|
(_) => GameWidget(game: ComposabilityExample()),
|
|
codeLink: baseLink('components/composability_example.dart'),
|
|
info: ComposabilityExample.description,
|
|
)
|
|
..add(
|
|
'Priority',
|
|
(_) => GameWidget(game: PriorityExample()),
|
|
codeLink: baseLink('components/priority_example.dart'),
|
|
info: PriorityExample.description,
|
|
)
|
|
..add(
|
|
'Debug',
|
|
(_) => GameWidget(game: DebugExample()),
|
|
codeLink: baseLink('components/debug_example.dart'),
|
|
info: DebugExample.description,
|
|
)
|
|
..add(
|
|
'Game-in-game',
|
|
(_) => GameWidget(game: GameInGameExample()),
|
|
codeLink: baseLink('components/game_in_game_example.dart'),
|
|
info: GameInGameExample.description,
|
|
)
|
|
..add(
|
|
'ClipComponent',
|
|
(context) => GameWidget(game: ClipComponentExample()),
|
|
codeLink: baseLink('components/clip_component_example.dart'),
|
|
info: ClipComponentExample.description,
|
|
)
|
|
..add(
|
|
'Look At',
|
|
(_) => GameWidget(game: LookAtExample()),
|
|
codeLink: baseLink('components/look_at_example.dart'),
|
|
info: LookAtExample.description,
|
|
)
|
|
..add(
|
|
'Look At Smooth',
|
|
(_) => GameWidget(game: LookAtSmoothExample()),
|
|
codeLink: baseLink('components/look_at_smooth_example.dart'),
|
|
info: LookAtExample.description,
|
|
)
|
|
..add(
|
|
'Component Notifier',
|
|
(_) => const ComponentsNotifierExampleWidget(),
|
|
codeLink: baseLink('components/components_notifier_example.dart'),
|
|
info: ComponentsNotifierExampleWidget.description,
|
|
)
|
|
..add(
|
|
'Component Notifier (with provider)',
|
|
(_) => const ComponentsNotifierProviderExampleWidget(),
|
|
codeLink:
|
|
baseLink('components/components_notifier_provider_example.dart'),
|
|
info: ComponentsNotifierProviderExampleWidget.description,
|
|
)
|
|
..add(
|
|
'Time Scale',
|
|
(_) => const GameWidget.controlled(
|
|
gameFactory: TimeScaleExample.new,
|
|
),
|
|
codeLink: baseLink('components/time_scale_example.dart'),
|
|
info: TimeScaleExample.description,
|
|
);
|
|
}
|