看板 GameDesign 關於我們 聯絡資訊
※ 引述《littleshan (我要加入劍道社!)》之銘言: : 因此(我看到的)大多遊戲都沒有固定 fps 不知道有沒有什麼例子可以舉一下 固定fps我覺得可以避免過多的畫面更新 我想知道是哪一類型的遊戲會選擇不這樣做 : 另外一個問題是 : 當你計算物體的位移時 : 不能用 1/30 秒去算 : 因為 render 要花時間 : 而且每張 frame 花的時間不一樣 : 如果都用 1/30 秒去算 : 就會發生物體移動時快時慢的現象 : 若要固定 fps 為 30 : 我會先計算畫出第一張 frame 的時間,假設為 t : 然後設定 timer 在 (1/30 - t) 秒後重繪一次 : 因為 t 會變動 : 因此每次重繪完 都要重新設定一次 timer 其實好像並不會發生你說的這種狀況 因為其實timer並不是跑完函式才繼續計算中間的間格時間的 也就是並非在(1/30 - t)秒後重繪一次 而是利用取得系統時間 計算間格時間 當超過或等於我們設定的值 才呼叫callback function 簡單的說 fps 30的情形 就會讓你顯現的結果是固定fps 30的樣子 具體的舉例 設定一段動畫是球落地的動畫(fps30) 而總時間是1秒(也就是30格) 那麼假設其中的第一個畫面在畫的時候計算量太大(timer跑第一次) 拖到一秒才畫完 所以當timer跑第二次的時候 會發現從開始動畫已經過了1秒 (不是從畫完以後計算) 因此第二格畫出來的會是球已經落地的樣子 -- http://www.wretch.cc/blog/killman http://www.wretch.cc/album/killman 作品集 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.111.5.43
doomleika:我知道quake 3還有UT系都沒有鎖 01/08 11:46
doomleika:不過quake後來因為這樣搞出了strafe jump,後來的系統 01/08 11:47
doomleika:預設都鎖起來了 01/08 11:47
killman:作fps engine的應該都很喜歡讓fps飆高沒錯 01/08 11:54
killman:學術上的程式也會故意不鎖fps 來驗證最高速 01/08 11:56
killman:不過fps的遊戲也並不代表全部就是了 01/08 11:59
killman:而且如果是說動畫部分 未必更新頻率跟顯示的部分是相同的 01/08 12:00