인프런 커뮤니티 질문&답변

Inwoo J님의 프로필 이미지
Inwoo J

작성한 질문수

Three.js로 시작하는 3D 인터랙티브 웹

애니메이션 성능 보정

애니메이션 Date.now에 대한 질문입니다.

작성

·

162

0

function draw() 위에 let oldTime = Date.now();를 만들면 ex06_02.js 라는 파일이 실행될 때 시간이 딱 고정될테고, draw() 함수 안에 const deltaTime = newTime - oldTime;는 즉, draw 함수를 실행했을 때와 파일을 열었을 때를 빼는 값인 것은 이해하였습니다.

하지만 그 다음 줄에 oldTime = newTime에서 draw 함수는 계속해서 실행되다보니 oldTime에 newTime을  계속 대입시키면 결국 두 개의 값이 같아지는게 아닌가요?? 그러면 deltaTime의 값은 결국 0이 되는걸로 이해하였는데

어떤 부분을 잘못 이해하였는지 질문드립니다!

답변 1

0

1분코딩님의 프로필 이미지
1분코딩
지식공유자

해당 코드의 실행 시점이 중요합니다.
const deltaTime = newTime - oldTime; 이 때 시간차가 deltaTime에 저장이 되고,
deltaTime이 정해진 이후에 oldTime = newTime를 실행하기 때문에 deltaTime에는 여전히 이전에 넣어준 시간차가 저장되어 있다고 생각하시면 됩니다.
oldTime = newTime은 다음 실행 턴을 위해서 해준 것이고요. 현재의 newTime값을 다음번에는 oldTime으로 사용해야 하니까요~

Inwoo J님의 프로필 이미지
Inwoo J

작성한 질문수

질문하기