日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

游戏提高性能 游戏降帧处理

發布時間:2023/12/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 游戏提高性能 游戏降帧处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是降幀&為什么降幀

一般情況下我們為了提高整個游戲的體驗,所以我們一般會將游戲的幀數(每秒鐘刷新多少次)設置的比較高。一般情況下,我們的游戲所有的代碼都是一幀執行一次。為了讓每一幀都變成真的關鍵數據幀。不過,部分手機能性能可能跟不上,或者計算量太大的情況下,手機的運算速度不能夠支持的情況,過高的性能消耗就會拖慢運算的速度,讓一秒內沒有辦法打到滿幀。所以就會覺得游戲變得卡頓。

其實一部分邏輯并沒有必要每一幀都去執行,可以將他們隔幾幀運行一次也不是不可以。比如說傷害值的運算,傷害應該與游戲運營的幀數無關,比如每0.1秒執行一次傷害代碼,那么在滿幀60幀的情況下,其實每6幀執行一次就OK。

或許你會問,如果我們的程序最少的邏輯間隔時間是0.1的話。所有的游戲邏輯都是間隔0.1判定一次不就好了?這不是很簡單的事情?但實際上事情并沒有那么簡單。一般情況下我們人眼的錄入認為是16幀每秒。那么理論上滿足16幀的游戲,我們就應該覺得很流暢了。但是你我都知道,16幀的游戲,并不能讓人覺得非常流暢。為什么?原因也非常簡單。人看到的東西會有預判,你看到這個怪物在水平移動,如果游戲表現出來的效果與你的預判是保持一致的,那么你就會覺得這是非常流暢的,但是如果怪物的移動跟你的預判不一致,那么你就會覺得這個游戲并不流暢。回答一下剛才自己提問的問題。為什么不可以,因為你把業務堆積到某一幀里邊去了。所以這一幀里邊的運算量跟你沒有降幀之前的運算量是一致的,相對于沒有運算的幀來說,你是卡頓的。這個時候。一會卡頓一會流暢。或許你打印出來的每秒的幀數是夠60的。但是你表現出來的效果并不流暢。

我們之所以希望能提高幀數,是為了制造流暢的感覺。但是降幀則會違反這種感覺。所以游戲的幀數不能降低,或者在準確一點來說,游戲的View的幀數不應該降低,減低的應該是邏輯幀數。

請原諒我取了一個比較迷惑的題目。其實這樣的原因,是希望你能夠讀下去。而不是看一眼題目就自以為知道具體是怎么處理了。

怎么降幀

從上文中,我已經提到了。我希望將游戲的幀數分為兩種,一種邏輯幀,一種View幀。View幀是滿幀在跑的。邏輯幀則是間隔執行的。也沒錯。上文中已經提到了,簡單的區分這兩種更新的實際也并不合適。因為依然會卡頓。那怎么才會不卡呢。將數據量分攤到各個幀里邊。

怪物會有兩種跟新模式

1、View更新:用來更新他的位置,動畫一類

2、用來更新行為:攻擊、打出傷害等等

?

主循環會有多個對象列表比如說6個

主循環會將每一次的Update標上記號。調用所有的對象的View更新方法和與標記相對應的對象列表的邏輯更新。

這樣就將所有的邏輯分攤到了各個幀數里邊。讓各個幀數更平均一些。達到流暢的目的

轉載于:https://www.cnblogs.com/anxin1225/p/5509466.html

總結

以上是生活随笔為你收集整理的游戏提高性能 游戏降帧处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。