mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-01 10:38:17 +08:00
feat: Adding filterQuality arguments to Parallax load methods (#2596)
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.
This commit is contained in:
@ -1,3 +1,5 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flame/components.dart';
|
||||
import 'package:flame/game.dart';
|
||||
import 'package:flame/parallax.dart';
|
||||
@ -21,6 +23,7 @@ class AdvancedParallaxExample extends FlameGame {
|
||||
(e) => loadParallaxLayer(
|
||||
ParallaxImageData(e.key),
|
||||
velocityMultiplier: Vector2(e.value, 1.0),
|
||||
filterQuality: FilterQuality.none,
|
||||
),
|
||||
);
|
||||
final parallax = ParallaxComponent(
|
||||
|
||||
@ -12,6 +12,7 @@ class AnimationParallaxExample extends FlameGame {
|
||||
Future<void> onLoad() async {
|
||||
final cityLayer = await loadParallaxLayer(
|
||||
ParallaxImageData('parallax/city.png'),
|
||||
filterQuality: FilterQuality.none,
|
||||
);
|
||||
|
||||
final rainLayer = await loadParallaxLayer(
|
||||
@ -24,6 +25,7 @@ class AnimationParallaxExample extends FlameGame {
|
||||
),
|
||||
),
|
||||
velocityMultiplier: Vector2(2, 0),
|
||||
filterQuality: FilterQuality.none,
|
||||
);
|
||||
|
||||
final cloudsLayer = await loadParallaxLayer(
|
||||
@ -31,6 +33,7 @@ class AnimationParallaxExample extends FlameGame {
|
||||
velocityMultiplier: Vector2(4, 0),
|
||||
fill: LayerFill.none,
|
||||
alignment: Alignment.topLeft,
|
||||
filterQuality: FilterQuality.none,
|
||||
);
|
||||
|
||||
final parallax = Parallax(
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flame/components.dart';
|
||||
import 'package:flame/game.dart';
|
||||
import 'package:flame/parallax.dart';
|
||||
@ -21,6 +23,7 @@ class BasicParallaxExample extends FlameGame {
|
||||
_imageNames,
|
||||
baseVelocity: Vector2(20, 0),
|
||||
velocityMultiplierDelta: Vector2(1.8, 1.0),
|
||||
filterQuality: FilterQuality.none,
|
||||
);
|
||||
add(parallax);
|
||||
}
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flame/components.dart';
|
||||
import 'package:flame/game.dart';
|
||||
import 'package:flame/parallax.dart';
|
||||
@ -27,6 +29,7 @@ class MyParallaxComponent extends ParallaxComponent<ComponentParallaxExample> {
|
||||
],
|
||||
baseVelocity: Vector2(20, 0),
|
||||
velocityMultiplierDelta: Vector2(1.8, 1.0),
|
||||
filterQuality: FilterQuality.none,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flame/extensions.dart';
|
||||
import 'package:flame/game.dart';
|
||||
import 'package:flame/parallax.dart';
|
||||
@ -26,6 +28,7 @@ class NoFCSParallaxExample extends Game {
|
||||
size: size,
|
||||
baseVelocity: Vector2(20, 0),
|
||||
velocityMultiplierDelta: Vector2(1.8, 1.0),
|
||||
filterQuality: FilterQuality.none,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -26,22 +26,27 @@ class SandboxLayerParallaxExample extends FlameGame {
|
||||
Future<void> onLoad() async {
|
||||
final bgLayer = await loadParallaxLayer(
|
||||
ParallaxImageData('parallax/bg.png'),
|
||||
filterQuality: FilterQuality.none,
|
||||
);
|
||||
final mountainFarLayer = await loadParallaxLayer(
|
||||
ParallaxImageData('parallax/mountain-far.png'),
|
||||
velocityMultiplier: Vector2(1.8, 0),
|
||||
filterQuality: FilterQuality.none,
|
||||
);
|
||||
final mountainLayer = await loadParallaxLayer(
|
||||
ParallaxImageData('parallax/mountains.png'),
|
||||
velocityMultiplier: Vector2(2.8, 0),
|
||||
filterQuality: FilterQuality.none,
|
||||
);
|
||||
final treeLayer = await loadParallaxLayer(
|
||||
ParallaxImageData('parallax/trees.png'),
|
||||
velocityMultiplier: Vector2(3.8, 0),
|
||||
filterQuality: FilterQuality.none,
|
||||
);
|
||||
final foregroundTreesLayer = await loadParallaxLayer(
|
||||
ParallaxImageData('parallax/foreground-trees.png'),
|
||||
velocityMultiplier: Vector2(4.8, 0),
|
||||
filterQuality: FilterQuality.none,
|
||||
);
|
||||
final airplaneLayer = await loadParallaxLayer(
|
||||
ParallaxAnimationData(
|
||||
@ -56,6 +61,7 @@ class SandboxLayerParallaxExample extends FlameGame {
|
||||
velocityMultiplier: planeSpeed,
|
||||
fill: planeFill,
|
||||
alignment: planeAlignment,
|
||||
filterQuality: FilterQuality.none,
|
||||
);
|
||||
|
||||
final parallax = Parallax(
|
||||
|
||||
Reference in New Issue
Block a user