UNPKG

@matematrolii/sketchbook

Version:

3D matematrolii playground built on three.js and cannon.js

41 lines (32 loc) 1.13 kB
import { CharacterStateBase, JumpIdle, Walk, Pick } from "./_stateLibrary"; import { ICharacterState } from "../../interfaces/ICharacterState"; import { Character } from "../Character"; export class Idle extends CharacterStateBase implements ICharacterState { constructor(character: Character) { super(character); this.character.velocitySimulator.damping = 0.6; this.character.velocitySimulator.mass = 10; this.character.setArcadeVelocityTarget(0); this.playAnimation("idle", 0.1); } public update(timeStep: number): void { super.update(timeStep); this.fallInAir(); } public onInputChange(): void { super.onInputChange(); if (this.character.actions.jump.justPressed) { this.character.setState(new JumpIdle(this.character)); } if (this.character.actions.pick.justPressed) { this.character.setState(new Pick(this.character)); } if (this.anyDirection()) { if (this.character.velocity.length() > 0.5) { this.character.setState(new Walk(this.character)); } else { this.setAppropriateStartWalkState(); } } } }