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:
		
							
								
								
									
										75
									
								
								examples/lib/stories/rendering/layers_example.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								examples/lib/stories/rendering/layers_example.dart
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,75 @@ | ||||
| import 'dart:ui'; | ||||
|  | ||||
| import 'package:flame/components.dart'; | ||||
| import 'package:flame/game.dart'; | ||||
| import 'package:flame/layers.dart'; | ||||
|  | ||||
| class LayerExample extends FlameGame { | ||||
|   static const String description = ''' | ||||
|     In this example we show how layers can be used to produce a shadow effect. | ||||
|   '''; | ||||
|  | ||||
|   late Layer gameLayer; | ||||
|   late Layer backgroundLayer; | ||||
|  | ||||
|   @override | ||||
|   Future<void> onLoad() async { | ||||
|     await super.onLoad(); | ||||
|     final playerSprite = Sprite(await images.load('layers/player.png')); | ||||
|     final enemySprite = Sprite(await images.load('layers/enemy.png')); | ||||
|     final backgroundSprite = Sprite(await images.load('layers/background.png')); | ||||
|  | ||||
|     gameLayer = GameLayer(playerSprite, enemySprite); | ||||
|     backgroundLayer = BackgroundLayer(backgroundSprite); | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   void render(Canvas canvas) { | ||||
|     super.render(canvas); | ||||
|     gameLayer.render(canvas); | ||||
|     backgroundLayer.render(canvas); | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   Color backgroundColor() => const Color(0xFF38607C); | ||||
| } | ||||
|  | ||||
| class GameLayer extends DynamicLayer { | ||||
|   final Sprite playerSprite; | ||||
|   final Sprite enemySprite; | ||||
|  | ||||
|   GameLayer(this.playerSprite, this.enemySprite) { | ||||
|     preProcessors.add(ShadowProcessor()); | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   void drawLayer() { | ||||
|     playerSprite.render( | ||||
|       canvas, | ||||
|       position: Vector2.all(50), | ||||
|       size: Vector2.all(150), | ||||
|     ); | ||||
|     enemySprite.render( | ||||
|       canvas, | ||||
|       position: Vector2(250, 150), | ||||
|       size: Vector2(100, 50), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
|  | ||||
| class BackgroundLayer extends PreRenderedLayer { | ||||
|   final Sprite sprite; | ||||
|  | ||||
|   BackgroundLayer(this.sprite) { | ||||
|     preProcessors.add(ShadowProcessor()); | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   void drawLayer() { | ||||
|     sprite.render( | ||||
|       canvas, | ||||
|       position: Vector2(50, 200), | ||||
|       size: Vector2(300, 150), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Lukas Klingsbo
					Lukas Klingsbo