mirror of
https://github.com/flame-engine/flame.git
synced 2025-10-31 00:48:47 +08:00
The Parallax already supported filter quality, but the loader methods were missing parameters for it to be passed to the loaded instances, making it impossible (unless manually loading) to set a filter quality in a parallax. By setting a filter quality to none (which on flutter means that the next neighbour algorithm will be user) on pixel art sprites we can keep the crisp look that that style of art demands.
38 lines
959 B
Dart
38 lines
959 B
Dart
import 'dart:ui';
|
|
|
|
import 'package:flame/components.dart';
|
|
import 'package:flame/game.dart';
|
|
import 'package:flame/parallax.dart';
|
|
|
|
class AdvancedParallaxExample extends FlameGame {
|
|
static const String description = '''
|
|
Shows how to create a parallax with different velocity deltas on each layer.
|
|
''';
|
|
|
|
final _layersMeta = {
|
|
'parallax/bg.png': 1.0,
|
|
'parallax/mountain-far.png': 1.5,
|
|
'parallax/mountains.png': 2.3,
|
|
'parallax/trees.png': 3.8,
|
|
'parallax/foreground-trees.png': 6.6,
|
|
};
|
|
|
|
@override
|
|
Future<void> onLoad() async {
|
|
final layers = _layersMeta.entries.map(
|
|
(e) => loadParallaxLayer(
|
|
ParallaxImageData(e.key),
|
|
velocityMultiplier: Vector2(e.value, 1.0),
|
|
filterQuality: FilterQuality.none,
|
|
),
|
|
);
|
|
final parallax = ParallaxComponent(
|
|
parallax: Parallax(
|
|
await Future.wait(layers),
|
|
baseVelocity: Vector2(20, 0),
|
|
),
|
|
);
|
|
add(parallax);
|
|
}
|
|
}
|