mirror of
				https://github.com/flame-engine/flame.git
				synced 2025-10-31 08:56:01 +08:00 
			
		
		
		
	Unify examples structure (#1118)
* Animations, CameraAndViewport, CollisionDetection and Components unified * Added descriptions to effects * Rename input games * Unify input stories * Add info to parallax section * Added descriptions to the rendering examples * Add descriptions to the sprites directory * Fix utils and rendering section * Add descriptions to the widgets section * Delete directory that rebase brought back * Unify game names * Added some styleguide docs for examples * Fix analyze issues * All files should have _example as suffix * Made the FollowComponentExample a bit easier to understand * Change priority of ember
This commit is contained in:
		
							
								
								
									
										65
									
								
								examples/lib/stories/sprites/sprite_group_example.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								examples/lib/stories/sprites/sprite_group_example.dart
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,65 @@ | ||||
| import 'package:flame/components.dart'; | ||||
| import 'package:flame/game.dart'; | ||||
|  | ||||
| enum ButtonState { unpressed, pressed } | ||||
|  | ||||
| class SpriteGroupExample extends FlameGame with HasTappables { | ||||
|   static const String description = ''' | ||||
|     In this example we show how a `SpriteGroupComponent` can be used to create | ||||
|     a button which displays different sprites depending on whether it is pressed | ||||
|     or not. | ||||
|   '''; | ||||
|  | ||||
|   @override | ||||
|   Future<void> onLoad() async { | ||||
|     await super.onLoad(); | ||||
|     add( | ||||
|       ButtonComponent() | ||||
|         ..position = size / 2 | ||||
|         ..size = Vector2(200, 50) | ||||
|         ..anchor = Anchor.center, | ||||
|     ); | ||||
|   } | ||||
| } | ||||
|  | ||||
| class ButtonComponent extends SpriteGroupComponent<ButtonState> | ||||
|     with HasGameRef<SpriteGroupExample>, Tappable { | ||||
|   @override | ||||
|   Future<void> onLoad() async { | ||||
|     await super.onLoad(); | ||||
|     final pressedSprite = await gameRef.loadSprite( | ||||
|       'buttons.png', | ||||
|       srcPosition: Vector2(0, 20), | ||||
|       srcSize: Vector2(60, 20), | ||||
|     ); | ||||
|     final unpressedSprite = await gameRef.loadSprite( | ||||
|       'buttons.png', | ||||
|       srcSize: Vector2(60, 20), | ||||
|     ); | ||||
|  | ||||
|     sprites = { | ||||
|       ButtonState.pressed: pressedSprite, | ||||
|       ButtonState.unpressed: unpressedSprite, | ||||
|     }; | ||||
|  | ||||
|     current = ButtonState.unpressed; | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   bool onTapDown(_) { | ||||
|     current = ButtonState.pressed; | ||||
|     return true; | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   bool onTapUp(_) { | ||||
|     current = ButtonState.unpressed; | ||||
|     return true; | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   bool onTapCancel() { | ||||
|     current = ButtonState.unpressed; | ||||
|     return true; | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Lukas Klingsbo
					Lukas Klingsbo