-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmove.ts
37 lines (31 loc) · 1.04 KB
/
move.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { IPerson, Person } from "./class"
export interface Movable {
moveForward(): void;
moveBack(): void;
}
export class Move implements Movable {
private positionBody: IPerson;
constructor(positionBody: IPerson) {
this.positionBody = positionBody;
}
moveForward() {
if (this.positionBody.positionBody.x < 725) {
const distance = this.positionBody.side === 'left' ? 5 : 10;
this._move(distance);
}
}
moveBack() {
if (this.positionBody.positionBody.x > 25) {
const distance = this.positionBody.side === 'left' ? -10 : -5;
this._move(distance);
}
}
private _move(distance: number) {
this.positionBody.positionBody.x += distance;
this.positionBody.positionHead.x += distance;
this.positionBody.positionLegLeft.x += distance;
this.positionBody.positionLegRight.x += distance;
this.positionBody.positionHandLeft.x += distance;
this.positionBody.positionHandRight.x += distance;
}
}