Skip to content

Documentation / @debuffjp/core / Camera

Class: Camera ​

Defined in: camera.ts:13

2D camera with smoothed follow, deadzone and trauma-based shake. x/y is the world point at the viewport centre.

Constructors ​

Constructor ​

new Camera(options): Camera

Defined in: camera.ts:44

Parameters ​

options ​

CameraOptions

Returns ​

Camera

Properties ​

bounds ​

bounds: { height: number; width: number; x: number; y: number; } | undefined

Defined in: camera.ts:42


deadzone ​

deadzone: object

Defined in: camera.ts:20

Half-size of the region the target may move in without the camera moving.

x ​

x: number = 0

y ​

y: number = 0


height ​

readonly height: number

Defined in: camera.ts:41


lerp ​

lerp: number = 8

Defined in: camera.ts:18

Follow responsiveness in 1/s; higher snaps faster. 0 disables smoothing.


motionScale ​

motionScale: number = 1

Defined in: camera.ts:26

Multiplier on shake. Game lowers it when the player prefers reduced motion.


renderAlpha ​

renderAlpha: number = 1

Defined in: camera.ts:32

Where between the previous and current simulation step to draw, in [0, 1]. Game sets it before each render so the camera moves smoothly on displays faster than the 60 Hz simulation.


shakeAmplitude ​

shakeAmplitude: number = 8

Defined in: camera.ts:22

Max shake offset in pixels at trauma 1.


shakeDecay ​

shakeDecay: number = 1.5

Defined in: camera.ts:24

Trauma lost per second.


width ​

readonly width: number

Defined in: camera.ts:40


x ​

x: number = 0

Defined in: camera.ts:14


y ​

y: number = 0

Defined in: camera.ts:15


zoom ​

zoom: number = 1

Defined in: camera.ts:16

Methods ​

follow() ​

follow(target, snap?): void

Defined in: camera.ts:50

Parameters ​

target ​

{ x: number; y: number; } | undefined

snap? ​

boolean = true

Returns ​

void


sees() ​

sees(x, y, w, h): boolean

Defined in: camera.ts:105

True if a world-space rectangle overlaps the view (for culling).

Parameters ​

x ​

number

y ​

number

w ​

number

h ​

number

Returns ​

boolean


shake() ​

shake(amount): void

Defined in: camera.ts:62

Add shake trauma in [0, 1]. Shake intensity scales with trauma².

Parameters ​

amount ​

number

Returns ​

void


toWorld() ​

toWorld(sx, sy): object

Defined in: camera.ts:97

Convert a viewport point (e.g. pointer) to world coordinates.

Parameters ​

sx ​

number

sy ​

number

Returns ​

object

x ​

x: number

y ​

y: number


update() ​

update(dt, random): void

Defined in: camera.ts:66

Parameters ​

dt ​

number

random ​

Random

Returns ​

void


view() ​

view(): [number, number, number, number, number, number]

Defined in: camera.ts:87

The camera as an affine matrix [a, b, c, d, e, f] from world to viewport units. Use with draw.withCamera(camera, () => { ... }). Positions snap to whole pixels.

Returns ​

[number, number, number, number, number, number]