@vladkrutenyuk/three-kvy-core
Version:
Everything you need to create any-complexity 3D apps with Three.js. Empower Three.js with a modular, lifecycle-managed context that seamlessly propagates through objects via reusable features providing structured logic.
23 lines (17 loc) • 504 B
JavaScript
import * as KVY from "@vladkrutenyuk/three-kvy-core";
export class SimpleMovement extends KVY.Object3DFeature {
speed = 10;
constructor(object, props) {
super(object);
this.speed = props.speed;
}
onBeforeRender(ctx) {
const offset = this.speed * ctx.deltaTime;
const pos = this.object.position;
const key = ctx.modules.input.isKeyDown;
if (key("KeyW")) pos.z -= offset;
if (key("KeyS")) pos.z += offset;
if (key("KeyD")) pos.x += offset;
if (key("KeyA")) pos.x -= offset;
}
}