mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-02 11:43:19 +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 {
|
class Animation {
|
||||||
List<Sprite> sprites;
|
List<Sprite> sprites;
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
|
||||||
import 'component.dart';
|
import 'component.dart';
|
||||||
import 'animation.dart';
|
import 'package:flame/animation.dart';
|
||||||
import '../sprite.dart';
|
import '../sprite.dart';
|
||||||
|
|
||||||
class AnimationComponent extends PositionComponent {
|
class AnimationComponent extends PositionComponent {
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
|
||||||
import 'package:flame/sprite.dart';
|
import '../sprite.dart';
|
||||||
|
import '../position.dart';
|
||||||
import 'package:flutter/painting.dart';
|
import 'package:flutter/painting.dart';
|
||||||
|
|
||||||
abstract class Component {
|
abstract class Component {
|
||||||
@ -41,6 +42,10 @@ abstract class PositionComponent extends Component {
|
|||||||
canvas.translate(-width/2, -height/2);
|
canvas.translate(-width/2, -height/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Position toPosition() {
|
||||||
|
return new Position(x, y);
|
||||||
|
}
|
||||||
|
|
||||||
Rect toRect() {
|
Rect toRect() {
|
||||||
return new Rect.fromLTWH(x, y, width, height);
|
return new Rect.fromLTWH(x, y, width, height);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import 'package:flutter/scheduler.dart';
|
|||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
|
|
||||||
import 'components/component.dart';
|
import 'components/component.dart';
|
||||||
|
import 'position.dart';
|
||||||
|
|
||||||
abstract class Game {
|
abstract class Game {
|
||||||
void update(double t);
|
void update(double t);
|
||||||
@ -104,13 +105,16 @@ class GameRenderBox extends RenderBox {
|
|||||||
}
|
}
|
||||||
|
|
||||||
abstract class BaseGame extends Game {
|
abstract class BaseGame extends Game {
|
||||||
final List<Component> components = new List();
|
|
||||||
|
List<Component> components = new List();
|
||||||
Size size;
|
Size size;
|
||||||
|
Position camera = new Position.empty();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void render(Canvas canvas) {
|
void render(Canvas canvas) {
|
||||||
canvas.save();
|
canvas.save();
|
||||||
components.forEach((comp) {
|
components.forEach((comp) {
|
||||||
|
canvas.translate(-camera.x, -camera.y);
|
||||||
comp.render(canvas);
|
comp.render(canvas);
|
||||||
canvas.restore();
|
canvas.restore();
|
||||||
canvas.save();
|
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