일부 캔버스 애니메이션과 함께 타이머를 만들려고합니다. 애니메이션은 60fps로 설정된 함수 루프를 사용하여 캔바스를 새로 고침하고 객체를 다시 그립니다. 스톱워치를 만들 수있는 유일한 방법은 동일한 루프를 사용하여 프레임 당 밀리 초를 가져 와서 텍스트 개체에 추가하는 것입니다. 이 일을하는 더 효율적인 방법이 있는지 궁금한가요?60fps에서 캔버스 애니메이션과 함께 스톱워치/타이머 만들기
var frame = 0;
canvas.setLoop(function() {
if(particle.x < 1080 && particle.x > 0){
frame++;
particle.x = 540 + (acc*frame*frame)/120;
gField.t.text = "g = 9.81ms⁻²\nMass = "+particle.mass+"kg\nF = ma\nFrame: " + frame + "\nDistance: " + (particle.x - 540).toFixed(1);
stopwatch();
}else{
canvas.timeline.stop();
}
})
var sec = 0;
var tsec = 0;
var hsec = 0;
function stopwatch(){
hsec+= (5/3);
if(hsec >= 10){
tsec++;
hsec = hsec -10;
}
if(tsec >= 10){
sec++;
tsec = tsec-10;
}
time.text = (sec)+":"+(tsec)+(hsec).toFixed(0);
}
var clicks = 0
control.button.bind("click tap", function() {
clicks++;
if(clicks == 1){
canvas.timeline.start();
}else{
clicks = 0;
canvas.timeline.stop();
}
})
p.s. 이것은 역학 시뮬레이션 프로그램을위한 것입니다. 캔버스 애니메이션을 위해 oCanvas 라이브러리를 사용하고 있습니다.
보증에 의해 60fps가 없다는 것을 명심하십시오. f. UR 클라이언트 PC가 느립니다. U는 Propper 시간을 얻으려면 Date()로 시간을 확인해야합니다. – Cracker0dks
아마도 클라이언트의 FPS를 얻는 데 도움이 될 수 있습니다. http://stackoverflow.com/a/4787460/648350 – haxxxton