[問題] TimeGetTime(); 和真實時間有誤差
遇到的問題: 使用TimeGetTime函式會有誤差
希望得到的正確結果: 能夠真正配合真實時間,不因每台電腦算的
幀數不同而有落差。
程式跑出來的錯誤結果: 約真實時間十秒鐘時,程式時間只到約八秒鐘
開發平台: Win32 API
有問題的code: (請善用置底文標色功能)
if(gettime == 0){
starttime=timeGetTime();
gettime=1;
}
currenttime=timeGetTime();
if(currenttime-starttime >= 10){
timemin+=1;
gettime=0;
}
補充說明: 由於我們做的是一款音樂遊戲,對於時間的準確度是滿要求的
但是開始做了一段時間,想要請同組組員幫忙測試遊戲才發現每個人電腦不一樣,導致
音符落下來速度不一,因此時間形同虛設。網路上有爬到可以透過FPS鎖定每個人電腦
速度,不過試了半天還是沒有辦法把FPS放進程式內;還有爬到用更精確的計時器來做
運算,可是......也是同樣沒成功。
if(currenttime - starttime >=10)的誤差約現實時間十秒才跑到八秒左右
if(currenttime - starttime >=100)的誤差約十三、十四秒差一秒鐘左右
有點急,想請教鄉民們,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 192.192.154.44
※ jflin15:轉錄至看板 GameDesign 10/28 04:40
推
10/28 08:10, , 1F
10/28 08:10, 1F
→
10/28 08:53, , 2F
10/28 08:53, 2F
→
10/28 08:57, , 3F
10/28 08:57, 3F
推
10/28 09:21, , 4F
10/28 09:21, 4F
推
10/28 15:11, , 5F
10/28 15:11, 5F
推
10/29 01:25, , 6F
10/29 01:25, 6F
→
10/29 01:26, , 7F
10/29 01:26, 7F