[engine] fix

This commit is contained in:
2018-01-16 22:07:57 +03:00
parent b3dfc42f0b
commit 35404d5732
3 changed files with 13 additions and 3 deletions

View File

@@ -35,14 +35,16 @@ class BrickState implements IState<Brick> {
class EntityState implements IState<Entity> {
private var x:Float;
private var y:Float;
private var d:Direction;
private var type:Int;
public function new() {}
public function update(object:Entity):Bool {
if (x != object.rect.x || y != object.rect.y) {
if (x != object.rect.x || y != object.rect.y || !d.equals(object.rect.direction)) {
x = object.rect.x;
y = object.rect.y;
d = object.rect.direction;
return true;
}
if (Std.is(object, Tank)) {

View File

@@ -23,6 +23,10 @@ class Direction {
return from(-x, -y);
}
public function equals(other:Direction):Bool {
return other.x == x && other.y == y;
}
public static function from(x:Int, y:Int):Direction {
return directions.get(x + y * 10);
}
@@ -36,4 +40,8 @@ class Direction {
case _: null;
}
}
public function toString():String {
return 'Direction{x=$x,y=$y}';
}
}

View File

@@ -46,10 +46,10 @@ class Tank extends MobileEntity {
override public function move(direction:Direction):Void {
// ToDo: spike
if (direction != this.direction) {
/*if (direction != this.direction) {
rect.x -= this.direction.x * 4;
rect.y -= this.direction.y * 4;
}
}*/
super.move(direction);
}