mirror of
				https://github.com/flame-engine/flame.git
				synced 2025-11-01 01:18:38 +08:00 
			
		
		
		
	 444375dd14
			
		
	
	444375dd14
	
	
	
		
			
			* Transforming PaletteEntry#paint into a full method * Fixing some errors that went unoticed * Update packages/flame/CHANGELOG.md Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net> * Update packages/flame/CHANGELOG.md Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net> * followup * format Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'dart:ui';
 | |
| 
 | |
| import 'package:flame/game.dart';
 | |
| import 'package:flame/keyboard.dart';
 | |
| import 'package:flame/palette.dart';
 | |
| import 'package:flutter/services.dart' show RawKeyDownEvent, RawKeyEvent;
 | |
| 
 | |
| class KeyboardGame extends Game with KeyboardEvents {
 | |
|   static final Paint white = BasicPalette.white.paint();
 | |
|   static const int speed = 200;
 | |
| 
 | |
|   Rect rect = const Rect.fromLTWH(0, 100, 100, 100);
 | |
|   final Vector2 velocity = Vector2(0, 0);
 | |
| 
 | |
|   @override
 | |
|   void update(double dt) {
 | |
|     final displacement = velocity * (speed * dt);
 | |
|     rect = rect.translate(displacement.x, displacement.y);
 | |
|   }
 | |
| 
 | |
|   @override
 | |
|   void render(Canvas canvas) {
 | |
|     canvas.drawRect(rect, white);
 | |
|   }
 | |
| 
 | |
|   @override
 | |
|   void onKeyEvent(RawKeyEvent e) {
 | |
|     final isKeyDown = e is RawKeyDownEvent;
 | |
|     if (e.data.keyLabel == 'a') {
 | |
|       velocity.x = isKeyDown ? -1 : 0;
 | |
|     } else if (e.data.keyLabel == 'd') {
 | |
|       velocity.x = isKeyDown ? 1 : 0;
 | |
|     } else if (e.data.keyLabel == 'w') {
 | |
|       velocity.y = isKeyDown ? -1 : 0;
 | |
|     } else if (e.data.keyLabel == 's') {
 | |
|       velocity.y = isKeyDown ? 1 : 0;
 | |
|     }
 | |
|   }
 | |
| }
 |