Class: Timer
이 객체는 이전 프레임과 현재 프레임의 시간차인 deltaTime을 계산하는 일을 담당한다.
Description
Usage
new Timer()
Members
currentTime: number
현재 프레임의 시간을 말한다. 웹페이지가 열린 후 지난 시간이 저장된다.
- Type:
- {number}
previousTime: number
이전 프레임의 시간을 말한다.
- Type:
- {number}
- Default Value:
- this.currentTime
deltaTime: number
현재 프레임의 시간과 이전 프레임의 시간의 차를 말한다.
- Type:
- {number}
accumulatedTime: number
매 프레임마다 누적된 deltaTime을 저장한다.
- Type:
- {number}
fps: number
1초에 보여줄 프레임의 개수를 말한다. 기본값으로 60이고, 24부터 MAX_VALUE 사이의 값을 저장할 수 있다.
- Type:
- {number}
- Default Value:
- 24
fixedDeltaTime: number
물리엔진에서는 가속도를 적분하여 속도를 나타내고, 속도를 적분하여 이동거리를 나타내기 때문에 정확한 연산을 위해서는 수식에서 사용할 ∇t가 일정해야한다. 따라서 fixedDeltaTime은 이론적으로 1 프레임을 렌더링할 때 걸리는 시간을 ∇t로 정한다.
- Type:
- {number}
Methods
update()
현재 프레임과 이전 프레임간의 시간차를 구해 deltaTime에 저장하고, 그 값을 accumulatedTime에 누적한다.
만약 accumulatedTime이 일정값보다 크다면 강제로 조정한다. 이걸 조정하지 않으면 누적된 시간만큼 물리엔진을 업데이트하기 때문에 긴 딜레이가 걸릴 수 있으므로 일부러 값을 낮춘다.
getCurrentTime() → {number}
브라우저가 열린 후 또는 새로고침된 후 지난 시간을 반환한다.
Returns:
초 단위의 지난 시간
setFps(fps)
1초에 렌더링할 프레임의 개수를 설정한다.
Parameters:
Name | Type | Description |
---|---|---|
fps
|
number |
프레임의 개수 |
setFixedDeltaTime()
물리엔진을 업데이트하기위한 fixedDeltaTime을 설정한다. 이 때 Timer의 fps속성을 이용하여 계산한다.