看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: 使用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
loveme00835:試試 QueryPerformanceCounter/Frequency 10/28 08:10
stupid0319:用GetTickCount()會不會比較好 10/28 08:53
stupid0319:推QueryPerformanceCounter/Frequency 10/28 08:57
ericinttu:推一、三樓 10/28 09:21
bdvstg:推一、三樓、四樓 10/28 15:11
wowtiger:但是呢 1 3 4 樓遇到 EIST or Cool'n'Quiet 就慘了 10/29 01:25
wowtiger:原因是 Frequency 會飄 ... 超扯的 10/29 01:26