@matematrolii/sketchbook
Version:
3D matematrolii playground built on three.js and cannon.js
52 lines (44 loc) • 1.08 kB
text/typescript
import
{
CharacterStateBase,
EndWalk,
JumpRunning,
Walk,
} from './_stateLibrary';
import { Character } from '../Character';
export class Sprint extends CharacterStateBase
{
constructor(character: Character)
{
super(character);
this.character.velocitySimulator.mass = 10;
this.character.rotationSimulator.damping = 0.8;
this.character.rotationSimulator.mass = 50;
//this.character.setArcadeVelocityTarget(1.4);
this.character.setArcadeVelocityTarget(0.8);
//this.playAnimation('sprint', 0.1);
this.playAnimation('run', 0.1);
}
public update(timeStep: number): void
{
super.update(timeStep);
this.character.setCameraRelativeOrientationTarget();
this.fallInAir();
}
public onInputChange(): void
{
super.onInputChange();
if (!this.character.actions.run.isPressed)
{
this.character.setState(new Walk(this.character));
}
if (this.character.actions.jump.justPressed)
{
this.character.setState(new JumpRunning(this.character));
}
if (this.noDirection())
{
this.character.setState(new EndWalk(this.character));
}
}
}