change packages, add Position class and Camera to BaseGame

This commit is contained in:
Luan Nico
2017-12-24 16:31:07 -02:00
parent b7e127ac11
commit 90b69f9cd9
5 changed files with 20 additions and 4 deletions

View File

@ -1,4 +1,4 @@
import '../sprite.dart';
import 'sprite.dart';
class Animation {
List<Sprite> sprites;

View File

@ -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 {

View File

@ -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);
}

View File

@ -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
View File

@ -0,0 +1,7 @@
class Position {
double x, y;
Position(this.x, this.y);
Position.empty() : this(0.0, 0.0);
}