37 lines
1014 B
TypeScript
37 lines
1014 B
TypeScript
import GameEvent from "../../../../Events/GameEvent";
|
|
import Sprite from "../../../../Nodes/Sprites/Sprite";
|
|
import MathUtils from "../../../../Utils/MathUtils";
|
|
import { CustomGameEventType } from "../../../CustomGameEventType";
|
|
import PlayerState from "./PlayerState";
|
|
|
|
export default class OnGround extends PlayerState {
|
|
onEnter(): void {}
|
|
|
|
handleInput(event: GameEvent): void {}
|
|
|
|
update(deltaT: number): void {
|
|
if(this.parent.velocity.y > 0){
|
|
this.parent.velocity.y = 0;
|
|
}
|
|
super.update(deltaT);
|
|
|
|
let direction = this.getInputDirection();
|
|
|
|
if(direction.x !== 0){
|
|
(<Sprite>this.owner).invertX = MathUtils.sign(direction.x) < 0;
|
|
}
|
|
|
|
if(this.input.isJustPressed("w") || this.input.isJustPressed("space")){
|
|
this.finished("jump");
|
|
this.parent.velocity.y = -500;
|
|
if(this.parent.velocity.x !== 0){
|
|
this.owner.tweens.play("flip");
|
|
}
|
|
this.emitter.fireEvent(CustomGameEventType.PLAYER_JUMP)
|
|
} else if(!this.owner.onGround){
|
|
this.finished("jump");
|
|
}
|
|
}
|
|
|
|
onExit(): void {}
|
|
} |