30 lines
904 B
TypeScript
30 lines
904 B
TypeScript
import State from "../../../Wolfie2D/DataTypes/State/State";
|
|
import StateMachine from "../../../Wolfie2D/DataTypes/State/StateMachine";
|
|
import Vec2 from "../../../Wolfie2D/DataTypes/Vec2";
|
|
import Input from "../../../Wolfie2D/Input/Input";
|
|
import GameNode from "../../../Wolfie2D/Nodes/GameNode";
|
|
import PlayerController from "../PlayerController";
|
|
|
|
|
|
export default abstract class PlayerState extends State {
|
|
owner: GameNode;
|
|
gravity: number = 1000;
|
|
parent: PlayerController;
|
|
|
|
constructor(parent: StateMachine, owner: GameNode){
|
|
super(parent);
|
|
this.owner = owner;
|
|
}
|
|
|
|
getInputDirection(): Vec2 {
|
|
let direction = Vec2.ZERO;
|
|
direction.x = (Input.isPressed("left") ? -1 : 0) + (Input.isPressed("right") ? 1 : 0);
|
|
direction.y = (Input.isJustPressed("jump") ? -1 : 0);
|
|
return direction;
|
|
}
|
|
|
|
update(deltaT: number): void {
|
|
// Do gravity
|
|
this.parent.velocity.y += this.gravity*deltaT;
|
|
}
|
|
} |