mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-02 03:15:43 +08:00
change packages, add Position class and Camera to BaseGame
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
import '../sprite.dart';
|
||||
import 'sprite.dart';
|
||||
|
||||
class Animation {
|
||||
List<Sprite> sprites;
|
||||
@ -1,7 +1,7 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'component.dart';
|
||||
import 'animation.dart';
|
||||
import 'package:flame/animation.dart';
|
||||
import '../sprite.dart';
|
||||
|
||||
class AnimationComponent extends PositionComponent {
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import 'dart:math';
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flame/sprite.dart';
|
||||
import '../sprite.dart';
|
||||
import '../position.dart';
|
||||
import 'package:flutter/painting.dart';
|
||||
|
||||
abstract class Component {
|
||||
@ -41,6 +42,10 @@ abstract class PositionComponent extends Component {
|
||||
canvas.translate(-width/2, -height/2);
|
||||
}
|
||||
|
||||
Position toPosition() {
|
||||
return new Position(x, y);
|
||||
}
|
||||
|
||||
Rect toRect() {
|
||||
return new Rect.fromLTWH(x, y, width, height);
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import 'package:flutter/scheduler.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
|
||||
import 'components/component.dart';
|
||||
import 'position.dart';
|
||||
|
||||
abstract class Game {
|
||||
void update(double t);
|
||||
@ -104,13 +105,16 @@ class GameRenderBox extends RenderBox {
|
||||
}
|
||||
|
||||
abstract class BaseGame extends Game {
|
||||
final List<Component> components = new List();
|
||||
|
||||
List<Component> components = new List();
|
||||
Size size;
|
||||
Position camera = new Position.empty();
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
canvas.save();
|
||||
components.forEach((comp) {
|
||||
canvas.translate(-camera.x, -camera.y);
|
||||
comp.render(canvas);
|
||||
canvas.restore();
|
||||
canvas.save();
|
||||
|
||||
7
lib/position.dart
Normal file
7
lib/position.dart
Normal file
@ -0,0 +1,7 @@
|
||||
class Position {
|
||||
double x, y;
|
||||
|
||||
Position(this.x, this.y);
|
||||
|
||||
Position.empty() : this(0.0, 0.0);
|
||||
}
|
||||
Reference in New Issue
Block a user