diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2016-01-07 11:22:59 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2016-01-07 11:22:59 +0100 |
commit | 584728a1293a5215baaca4e7de813b2a85b8253d (patch) | |
tree | 61fe7f216fa857d0a86d8ed28f3346d242f6b992 /src/model/Position.ts | |
parent | b7fec57c0463e58f1ad8db126ff4879f59b057d0 (diff) | |
download | rpgedit-584728a1293a5215baaca4e7de813b2a85b8253d.tar rpgedit-584728a1293a5215baaca4e7de813b2a85b8253d.zip |
Implement smooth transitions
Diffstat (limited to 'src/model/Position.ts')
-rw-r--r-- | src/model/Position.ts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/model/Position.ts b/src/model/Position.ts index 1db37af..1f9b719 100644 --- a/src/model/Position.ts +++ b/src/model/Position.ts @@ -1,9 +1,35 @@ 'use strict'; +import Direction from './Direction'; + + export default class Position { constructor(public x: number, public y: number) {} + translate(dir: Direction, amount: number): Position { + var p = new Position(this.x, this.y); + + switch (dir) { + case Direction.North: + p.y -= amount; + break; + + case Direction.East: + p.x += amount; + break; + + case Direction.South: + p.y += amount; + break; + + case Direction.West: + p.x -= amount; + } + + return p; + } + asString(): string { return `${this.x},${this.y}`; } |