mirror of
				https://github.com/flame-engine/flame.git
				synced 2025-11-01 01:18:38 +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:
		
							
								
								
									
										74
									
								
								examples/lib/stories/animations/animation_group_example.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								examples/lib/stories/animations/animation_group_example.dart
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,74 @@ | ||||
| import 'dart:ui'; | ||||
|  | ||||
| import 'package:flame/components.dart'; | ||||
| import 'package:flame/game.dart'; | ||||
| import 'package:flame/input.dart'; | ||||
|  | ||||
| enum RobotState { | ||||
|   idle, | ||||
|   running, | ||||
| } | ||||
|  | ||||
| class AnimationGroupExample extends FlameGame with TapDetector { | ||||
|   static const description = ''' | ||||
|     This example shows how to create a component that can be switched between | ||||
|     different states to change the animation that is playing.\n\n | ||||
|      | ||||
|     Usage: Click/tap and hold the screen to change state and then let go to go | ||||
|     back to the original animation. | ||||
|   '''; | ||||
|  | ||||
|   late SpriteAnimationGroupComponent robot; | ||||
|  | ||||
|   @override | ||||
|   Future<void> onLoad() async { | ||||
|     await super.onLoad(); | ||||
|     final running = await loadSpriteAnimation( | ||||
|       'animations/robot.png', | ||||
|       SpriteAnimationData.sequenced( | ||||
|         amount: 8, | ||||
|         stepTime: 0.2, | ||||
|         textureSize: Vector2(16, 18), | ||||
|       ), | ||||
|     ); | ||||
|     final idle = await loadSpriteAnimation( | ||||
|       'animations/robot-idle.png', | ||||
|       SpriteAnimationData.sequenced( | ||||
|         amount: 4, | ||||
|         stepTime: 0.4, | ||||
|         textureSize: Vector2(16, 18), | ||||
|       ), | ||||
|     ); | ||||
|  | ||||
|     final robotSize = Vector2(64, 72); | ||||
|     robot = SpriteAnimationGroupComponent<RobotState>( | ||||
|       animations: { | ||||
|         RobotState.running: running, | ||||
|         RobotState.idle: idle, | ||||
|       }, | ||||
|       current: RobotState.idle, | ||||
|       position: size / 2 - robotSize / 2, | ||||
|       size: robotSize, | ||||
|     ); | ||||
|  | ||||
|     add(robot); | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   void onTapDown(_) { | ||||
|     robot.current = RobotState.running; | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   void onTapCancel() { | ||||
|     robot.current = RobotState.idle; | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   void onTapUp(_) { | ||||
|     robot.current = RobotState.idle; | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   Color backgroundColor() => const Color(0xFF222222); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Lukas Klingsbo
					Lukas Klingsbo