tall-teacher-57409
05/23/2023, 2:08 PMhx
public static function moveCamera(delta:Float):Void {
dt = delta;
var camSpeed = speed * dt;
if (moveForward) {
var tgt = front.clone();
tgt.normalize();
tgt.scaleBy(camSpeed);
pos = pos.add(tgt);
}
if (moveBackward) {
var tgt = pos.clone();
tgt.normalize();
tgt.scaleBy(camSpeed);
pos = pos.subtract(tgt);
}
if (moveLeft) {
var m = pos.crossProduct(up);
m.normalize();
m.scaleBy(camSpeed);
pos = pos.subtract(m);
}
if (moveRight) {
var m = front.crossProduct(up);
m.normalize();
m.scaleBy(camSpeed);
pos = pos.add(m);
}
}
In Main.hx:
hx
public override function update(deltaTime:Int):Void {
this.deltaTime = deltaTime * 1.0 / 1000.0;
if (Camera.moveLeft || Camera.moveRight || Camera.moveForward || Camera.moveBackward) {
Camera.moveCamera(deltaTime);
}
}
public override function onKeyDown(key:KeyCode, modifier:KeyModifier):Void {
switch (key) {
case LEFT:
Camera.moveLeft = true;
case RIGHT:
Camera.moveRight = true;
case UP:
Camera.moveForward = true;
case DOWN:
Camera.moveBackward = true;
default:
}
}
public override function onKeyUp(key:KeyCode, modifier:KeyModifier):Void {
switch (key) {
case LEFT:
Camera.moveLeft = false;
case RIGHT:
Camera.moveRight = false;
case UP:
Camera.moveForward = false;
case DOWN:
Camera.moveBackward = false;
default:
};
}