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:
		
							
								
								
									
										72
									
								
								examples/lib/stories/components/composability_example.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								examples/lib/stories/components/composability_example.dart
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,72 @@ | ||||
| import 'package:flame/components.dart'; | ||||
| import 'package:flame/game.dart'; | ||||
| import 'package:flame/input.dart'; | ||||
|  | ||||
| // This class only has `HasDraggables` since the game-in-game example moves a | ||||
| // draggable component to this game. | ||||
| class ComposabilityExample extends FlameGame with HasDraggables { | ||||
|   static const String description = ''' | ||||
|     In this example we showcase how you can add children to a component and how | ||||
|     they transform together with their parent, if the parent is a | ||||
|     `PositionComponent`. This example is not interactive. | ||||
|   '''; | ||||
|  | ||||
|   late ParentSquare parentSquare; | ||||
|  | ||||
|   @override | ||||
|   bool debugMode = true; | ||||
|  | ||||
|   @override | ||||
|   Future<void> onLoad() async { | ||||
|     await super.onLoad(); | ||||
|     parentSquare = ParentSquare(Vector2.all(200), Vector2.all(300)) | ||||
|       ..anchor = Anchor.center; | ||||
|     add(parentSquare); | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   void update(double dt) { | ||||
|     super.update(dt); | ||||
|     parentSquare.angle += dt; | ||||
|   } | ||||
| } | ||||
|  | ||||
| class ParentSquare extends RectangleComponent with HasGameRef { | ||||
|   ParentSquare(Vector2 position, Vector2 size) | ||||
|       : super(position: position, size: size); | ||||
|  | ||||
|   @override | ||||
|   Future<void> onLoad() async { | ||||
|     super.onLoad(); | ||||
|     createChildren(); | ||||
|   } | ||||
|  | ||||
|   void createChildren() { | ||||
|     // All positions here are in relation to the parent's position | ||||
|     const childSize = 50.0; | ||||
|     final children = [ | ||||
|       RectangleComponent.square( | ||||
|         position: Vector2(100, 100), | ||||
|         size: childSize, | ||||
|         angle: 2, | ||||
|       ), | ||||
|       RectangleComponent.square( | ||||
|         position: Vector2(160, 100), | ||||
|         size: childSize, | ||||
|         angle: 3, | ||||
|       ), | ||||
|       RectangleComponent.square( | ||||
|         position: Vector2(170, 150), | ||||
|         size: childSize, | ||||
|         angle: 4, | ||||
|       ), | ||||
|       RectangleComponent.square( | ||||
|         position: Vector2(70, 200), | ||||
|         size: childSize, | ||||
|         angle: 5, | ||||
|       ), | ||||
|     ]; | ||||
|  | ||||
|     addAll(children); | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Lukas Klingsbo
					Lukas Klingsbo