mirror of
				https://github.com/flame-engine/flame.git
				synced 2025-11-01 01:18:38 +08:00 
			
		
		
		
	Removing prefix from FlameSpriteWidget and FlameAnimationWidget
This commit is contained in:
		
							
								
								
									
										57
									
								
								lib/widgets/sprite_widget.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								lib/widgets/sprite_widget.dart
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | ||||
| import 'package:flutter/widgets.dart'; | ||||
| import 'package:meta/meta.dart'; | ||||
| import '../sprite.dart'; | ||||
|  | ||||
| import 'dart:math'; | ||||
|  | ||||
| class SpriteWidget extends StatelessWidget { | ||||
|   final Sprite sprite; | ||||
|   final bool center; | ||||
|  | ||||
|   SpriteWidget({ | ||||
|     @required this.sprite, | ||||
|     this.center = false, | ||||
|   }) : assert(sprite.loaded(), 'Sprite must be loaded'); | ||||
|  | ||||
|   @override | ||||
|   Widget build(_) { | ||||
|     return Container( | ||||
|       child: CustomPaint(painter: _FlameSpritePainer(sprite, center)), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
|  | ||||
| class _FlameSpritePainer extends CustomPainter { | ||||
|   final Sprite _sprite; | ||||
|   final bool _center; | ||||
|  | ||||
|   _FlameSpritePainer(this._sprite, this._center); | ||||
|  | ||||
|   @override | ||||
|   bool shouldRepaint(_FlameSpritePainer old) => | ||||
|       old._sprite != _sprite || old._center != _center; | ||||
|  | ||||
|   @override | ||||
|   void paint(Canvas canvas, Size size) { | ||||
|     final widthRate = size.width / _sprite.size.x; | ||||
|     final heightRate = size.height / _sprite.size.y; | ||||
|  | ||||
|     final rate = min(widthRate, heightRate); | ||||
|  | ||||
|     final rect = Rect.fromLTWH( | ||||
|       0, | ||||
|       0, | ||||
|       _sprite.size.x * rate, | ||||
|       _sprite.size.y * rate, | ||||
|     ); | ||||
|  | ||||
|     if (_center) { | ||||
|       canvas.translate( | ||||
|         size.width / 2 - rect.width / 2, | ||||
|         size.height / 2 - rect.height / 2, | ||||
|       ); | ||||
|     } | ||||
|  | ||||
|     _sprite.renderRect(canvas, rect); | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Erick Zanardo
					Erick Zanardo