mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-01 19:12:31 +08:00
Default srcSize
This commit is contained in:
@ -15,7 +15,7 @@ SpriteAnimation _animation;
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
final image = await Flame.images.load('minotaur.png');
|
||||
_sprite = Sprite(image, size: Vector2.all(96));
|
||||
_sprite = Sprite(image, srcSize: Vector2.all(96));
|
||||
|
||||
final _animationSpriteSheet = SpriteSheet(
|
||||
image: image,
|
||||
|
||||
@ -25,7 +25,7 @@ class Selector extends SpriteComponent {
|
||||
|
||||
Selector(double s, Image image)
|
||||
: super.fromSprite(
|
||||
Vector2.all(s), Sprite(image, size: Vector2.all(32.0)));
|
||||
Vector2.all(s), Sprite(image, srcSize: Vector2.all(32.0)));
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
|
||||
@ -46,7 +46,7 @@ class IsometricTileset {
|
||||
final j = tileId ~/ columns;
|
||||
final s = size.toDouble();
|
||||
return Sprite(tileset,
|
||||
srcPosition: Vector2(s * i, s * j), size: Vector2.all(s));
|
||||
srcPosition: Vector2(s * i, s * j), srcSize: Vector2.all(s));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -12,9 +12,9 @@ class Sprite {
|
||||
Sprite(
|
||||
this.image, {
|
||||
Vector2 srcPosition,
|
||||
Vector2 size,
|
||||
Vector2 srcSize,
|
||||
}) : assert(image != null, "image can't be null") {
|
||||
size ??= Vector2(image.width.toDouble(), image.height.toDouble());
|
||||
this.srcSize = srcSize;
|
||||
this.srcPosition = srcPosition;
|
||||
}
|
||||
|
||||
@ -26,7 +26,12 @@ class Sprite {
|
||||
|
||||
Vector2 get srcSize => Vector2(src.width, src.height);
|
||||
|
||||
Vector2 get srcPosition => src.topLeft.toVector2();
|
||||
set srcSize(Vector2 size) {
|
||||
size ??= Vector2(image.width.toDouble(), image.height.toDouble());
|
||||
src = (srcPosition ?? Vector2.zero()).toPositionedRect(size);
|
||||
}
|
||||
|
||||
Vector2 get srcPosition => (src?.topLeft ?? Offset.zero).toVector2();
|
||||
|
||||
set srcPosition(Vector2 position) {
|
||||
src = (position ?? Vector2.zero()).toPositionedRect(srcSize);
|
||||
@ -43,8 +48,12 @@ class Sprite {
|
||||
double scale = 1.0,
|
||||
Paint overridePaint,
|
||||
}) {
|
||||
renderPosition(canvas, p,
|
||||
size: srcSize * scale, overridePaint: overridePaint);
|
||||
renderPosition(
|
||||
canvas,
|
||||
p,
|
||||
size: srcSize * scale,
|
||||
overridePaint: overridePaint,
|
||||
);
|
||||
}
|
||||
|
||||
void renderPosition(
|
||||
@ -53,7 +62,7 @@ class Sprite {
|
||||
Vector2 size,
|
||||
Paint overridePaint,
|
||||
}) {
|
||||
size ??= this.srcSize;
|
||||
size ??= srcSize;
|
||||
renderRect(canvas, p.toPositionedRect(size), overridePaint: overridePaint);
|
||||
}
|
||||
|
||||
@ -62,7 +71,7 @@ class Sprite {
|
||||
Vector2 size,
|
||||
Paint overridePaint,
|
||||
}) {
|
||||
size ??= this.srcSize;
|
||||
size ??= srcSize;
|
||||
renderRect(canvas, size.toRect(), overridePaint: overridePaint);
|
||||
}
|
||||
|
||||
@ -76,7 +85,7 @@ class Sprite {
|
||||
Vector2 size,
|
||||
Paint overridePaint,
|
||||
}) {
|
||||
size ??= this.srcSize;
|
||||
size ??= srcSize;
|
||||
renderRect(
|
||||
canvas,
|
||||
(p - size / 2).toPositionedRect(size),
|
||||
|
||||
@ -109,7 +109,7 @@ class SpriteAnimation {
|
||||
final Sprite sprite = Sprite(
|
||||
image,
|
||||
srcPosition: position,
|
||||
size: textureSize,
|
||||
srcSize: textureSize,
|
||||
);
|
||||
frames[i] = SpriteAnimationFrame(sprite, stepTimes[i]);
|
||||
}
|
||||
@ -138,7 +138,7 @@ class SpriteAnimation {
|
||||
final Sprite sprite = Sprite(
|
||||
image,
|
||||
srcPosition: Vector2Extension.fromInts(x, y),
|
||||
size: Vector2Extension.fromInts(width, height),
|
||||
srcSize: Vector2Extension.fromInts(width, height),
|
||||
);
|
||||
|
||||
return SpriteAnimationFrame(sprite, stepTime);
|
||||
|
||||
@ -42,7 +42,7 @@ class SpriteSheet {
|
||||
return Sprite(
|
||||
image,
|
||||
srcPosition: Vector2(x.toDouble(), y.toDouble())..multiply(size),
|
||||
size: size,
|
||||
srcSize: size,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ class _Painter extends widgets.CustomPainter {
|
||||
});
|
||||
|
||||
Sprite _getSpriteTile(double x, double y) =>
|
||||
Sprite(image, srcPosition: Vector2(x, y), size: Vector2.all(tileSize));
|
||||
Sprite(image, srcPosition: Vector2(x, y), srcSize: Vector2.all(tileSize));
|
||||
|
||||
@override
|
||||
void paint(Canvas canvas, Size size) {
|
||||
|
||||
Reference in New Issue
Block a user