Re: [程式] 製作動畫的問題

看板GameDesign (遊戲設計)作者 (天下第一人)時間17年前 (2008/01/08 11:44), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串5/5 (看更多)
※ 引述《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

01/08 11:46, , 1F
我知道quake 3還有UT系都沒有鎖
01/08 11:46, 1F

01/08 11:47, , 2F
不過quake後來因為這樣搞出了strafe jump,後來的系統
01/08 11:47, 2F

01/08 11:47, , 3F
預設都鎖起來了
01/08 11:47, 3F

01/08 11:54, , 4F
作fps engine的應該都很喜歡讓fps飆高沒錯
01/08 11:54, 4F

01/08 11:56, , 5F
學術上的程式也會故意不鎖fps 來驗證最高速
01/08 11:56, 5F

01/08 11:59, , 6F
不過fps的遊戲也並不代表全部就是了
01/08 11:59, 6F

01/08 12:00, , 7F
而且如果是說動畫部分 未必更新頻率跟顯示的部分是相同的
01/08 12:00, 7F
文章代碼(AID): #17Wl6Y92 (GameDesign)
文章代碼(AID): #17Wl6Y92 (GameDesign)