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
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
readonlyheight: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
readonlywidth: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
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]