Skip to content

Class: FlyControls ​

Defined in: packages/minerender/src/renderer/FlyControls.ts:40

Creative-flight camera controls: WASD moves horizontally along the view direction, space and shift move up and down, R sprints, and the mouse turns the camera (pointer lock, or drag).

Call FlyControls.update with the elapsed seconds once per frame; the change event marks the renderer dirty while keys are held. Speeds use scene units (16 per block). The element becomes focusable and keys apply while it has focus or the pointer is locked. A key pressed with Control, Alt, or Command stays a browser shortcut unless that modifier is bound. The wheel changes the speed, as in vanilla spectator mode. Touch input uses the left half of the element as a joystick and the right half for looking.

Extends ​

Constructors ​

Constructor ​

ts
new FlyControls(camera, domElement?): FlyControls;

Defined in: packages/minerender/src/renderer/FlyControls.ts:99

Parameters ​

ParameterType
cameraCamera
domElement?HTMLElement | null

Returns ​

FlyControls

Overrides ​

ts
Controls<FlyControlsEventMap, Camera>.constructor

Properties ​

PropertyModifierTypeDefault valueDescriptionDefined in
dampingFactorpublicnumber0.25Portion of the remaining velocity change applied per 60 Hz frame (0–1) when damping is enabled.packages/minerender/src/renderer/FlyControls.ts:52
enableDampingpublicbooleantrueSmooth acceleration and deceleration, approximating vanilla flight momentum.packages/minerender/src/renderer/FlyControls.ts:50
enableWheelSpeedpublicbooleantrueScroll the wheel to change movementSpeed within speedRange.packages/minerender/src/renderer/FlyControls.ts:56
isFlyControlsreadonlytruetrue-packages/minerender/src/renderer/FlyControls.ts:41
joystickRadiuspublicnumber64Touch joystick travel in CSS pixels for full speed.packages/minerender/src/renderer/FlyControls.ts:60
keyspublicRecord<FlyAction, string[]>undefinedKey bindings by KeyboardEvent.code.packages/minerender/src/renderer/FlyControls.ts:62
lookSpeedpublicnumber0.002Radians per pixel of pointer movement.packages/minerender/src/renderer/FlyControls.ts:48
movementSpeedpublicnumberundefinedHorizontal and vertical speed in scene units per second; vanilla creative flight by default.packages/minerender/src/renderer/FlyControls.ts:44
pointerLockpublicbooleantrueCapture the pointer on click so the mouse turns the camera without dragging; dragging works regardless.packages/minerender/src/renderer/FlyControls.ts:54
speedRangepublic[number, number]undefinedMinimum and maximum movementSpeed reachable with the wheel.packages/minerender/src/renderer/FlyControls.ts:58
sprintMultiplierpublicnumber2Speed multiplier while the sprint key is held.packages/minerender/src/renderer/FlyControls.ts:46

Accessors ​

locked ​

Get Signature ​

ts
get locked(): boolean;

Defined in: packages/minerender/src/renderer/FlyControls.ts:160

Whether mouse look currently owns the pointer.

Returns ​

boolean


pitch ​

Get Signature ​

ts
get pitch(): number;

Defined in: packages/minerender/src/renderer/FlyControls.ts:205

Vertical pitch in radians, positive looking up.

Returns ​

number


yaw ​

Get Signature ​

ts
get yaw(): number;

Defined in: packages/minerender/src/renderer/FlyControls.ts:200

Horizontal yaw in radians, where zero looks toward -Z.

Returns ​

number

Methods ​

connect() ​

ts
connect(element): void;

Defined in: packages/minerender/src/renderer/FlyControls.ts:107

Connects the controls to the DOM. This method has so called "side effects" since it adds the module's event listeners to the DOM.

Parameters ​

ParameterType
elementHTMLElement

Returns ​

void

Overrides ​

ts
Controls.connect

disconnect() ​

ts
disconnect(): void;

Defined in: packages/minerender/src/renderer/FlyControls.ts:128

Disconnects the controls from the DOM.

Returns ​

void

Overrides ​

ts
Controls.disconnect

dispose() ​

ts
dispose(): void;

Defined in: packages/minerender/src/renderer/FlyControls.ts:155

Call this method if you no longer want use to the controls. It frees all internal resources and removes all event listeners.

Returns ​

void

Overrides ​

ts
Controls.dispose

isPressed() ​

ts
isPressed(action): boolean;

Defined in: packages/minerender/src/renderer/FlyControls.ts:225

Whether an action's key is held.

Parameters ​

ParameterType
actionFlyAction

Returns ​

boolean


lock() ​

ts
lock(): void;

Defined in: packages/minerender/src/renderer/FlyControls.ts:165

Requests pointer capture; browsers only allow this from a user gesture.

Returns ​

void


lookAt() ​

ts
lookAt(target): void;

Defined in: packages/minerender/src/renderer/FlyControls.ts:217

Points the camera at a position without rolling it.

Parameters ​

ParameterType
targetVector3

Returns ​

void


reset() ​

ts
reset(): void;

Defined in: packages/minerender/src/renderer/FlyControls.ts:192

Restores the saved camera pose and stops movement.

Returns ​

void


saveState() ​

ts
saveState(): void;

Defined in: packages/minerender/src/renderer/FlyControls.ts:186

Stores the camera pose that reset restores.

Returns ​

void


setRotation() ​

ts
setRotation(yaw, pitch): void;

Defined in: packages/minerender/src/renderer/FlyControls.ts:210

Turns the camera; pitch is clamped to straight up and down.

Parameters ​

ParameterType
yawnumber
pitchnumber

Returns ​

void


unlock() ​

ts
unlock(): void;

Defined in: packages/minerender/src/renderer/FlyControls.ts:178

Releases a captured pointer.

Returns ​

void


update() ​

ts
update(delta?): void;

Defined in: packages/minerender/src/renderer/FlyControls.ts:234

Advances movement by delta seconds (measured since the previous call when omitted) and dispatches change when the camera moved. A step longer than 0.1 s is applied as 0.1 s.

Parameters ​

ParameterType
delta?number

Returns ​

void

Overrides ​

ts
Controls.update