最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Dt和幀率獨立游戲

2019-05-29 11:17 作者:喚境官方  | 我要投稿

Dt和幀率獨立游戲

幀率獨立游戲是指以相同速度運行的游戲,不受FPS(每秒幀數(shù))影響.例如游戲可能在性能比較慢的設備以30FPS運行,在性能比較好的設備以60FPS運行,幀率獨立游戲在兩種性能的電腦上會以相同的速度運行.換一個說法,依賴幀率游戲在性能比較慢的設備上就像以慢動作一樣.制作幀率獨立游戲可以確保玩游戲的設備不管性能的快慢,都有一樣的效果,不會因為FPS降低而影響游戲的可玩性.

這篇教程將會介紹如何制作幀率獨立游戲.

Dt系統(tǒng)概念

制作幀率獨立游戲最重要的一個部分就是Dt系統(tǒng).Dt表示增量時間即獲取上一幀到這一幀的時間.例如在100FPS游戲時Dt將會是0.01秒,在10FPS游戲時Dt將會是0.1,在游戲運行期間Dt是每一幀逐次變化,所以在長時間游戲中,Dt將不會是一個相同的值.

請嘗試制作以下事件,設置一個全局變量時間,設置事件條件每幀執(zhí)行,動作加法運算值設置Dt,然后把文本值設置為全局變量時間.

image.png
image.png

預覽一下,我們可以看到全局變量一直增加Dt,文本顯示全局變量值,這里我們可以發(fā)現(xiàn)每一秒剛好加1.因為一秒鐘內所有的Dt相加必須為1.

image.png

怎么使用Dt

一般我們制作依賴幀率游戲讓對象運動事件如下.

image.png

每幀執(zhí)行,猴子對象設置X坐標位置+1,即猴子每幀向右移動一個像素.將游戲在30FPS和60FPS的設備上分別運行會看到不同的效果,在30FPS的設備上猴子每秒向右移動30像素,在60FPS的設備上猴子每秒向右移動60像素.

我們在上面的例子測試了,Dt每秒總是加1,因此我們把事件改成下圖所示.

image.png
image.png

更改了事件之后,猴子對象在任何FPS的設備上都將會以60像素/每秒向右移動,由于Dt每秒總數(shù)為1,因此60*Dt即每秒增加60.無論在30FPS或者60FPS的設備上,都是以60像素/每秒向右移動.

在哪里使用Dt

如果想要制作幀率獨立游戲時,想要以穩(wěn)定的速度移動對象時,都需要使用Dt來實現(xiàn).例如我們希望對象向前移動,我們可以設置60*Dt向前移動,事件如下圖所示.

image.png
image.png

能力已經(jīng)默認使用Dt系統(tǒng)

所有喚境Evkworld的能力關于運動計算中都已經(jīng)默認Dt系統(tǒng).即八方向運動,平臺跳躍等速度屬性不需要另外的處理.

不過這里有一個特殊的地方,物理是一個例外,默認情況下,物理不會使用Dt系統(tǒng),物理還是取決于FPS.這是因為Dt系統(tǒng)會有比較小的隨機變化,這種隨機變化會讓物理游戲中相同的設置會產生不同的效果,即使同樣的事件發(fā)生兩次也有可能發(fā)生不同的效果.

時間尺度

在喚境Evkworld有一個非常棒功能是時間尺度.時間尺度可以允許更改游戲中的速率時間.在系統(tǒng)動作”設置時間尺度”來設置游戲中的速率時間.時間尺度為1表示為正常速度,時間尺度為0.5表示比正常速度慢一半,時間尺度為2表示比正常速度快兩倍.例如如果在游戲過程中設置時間尺度更改為0.1,即將游戲以1/10的速度運行,這樣其實就制作了一個慢動作的效果.

時間尺度的原理是更改Dt的返回值.改變時間尺度將會影響使用能力的對象或者使用Dt的事件.如像本教程第一個事件沒有使用Dt系統(tǒng)控制運動,更改時間尺度將不受任何影響.

暫停/恢復游戲中速率時間

我們可以設置時間尺度為0,這樣設置之后將會將游戲中的速率時間為0即暫停效果.重新設置時間尺度為1即把游戲恢復正常.在設置時間尺度為0后,可能有一些點擊事件依然會被觸發(fā),所以可以把這些觸發(fā)事件放進事件組中,在時間尺度為0時,禁用事件組,設置時間尺度為1后,啟用事件組.這樣來制作暫停/恢復游戲功能.

對象的時間尺度

在系統(tǒng)動作中”設置對象的時間尺度”可以對實例對象單獨設置時間尺度,通過單獨設置對象的時間尺度可以讓游戲其他對象慢動作運動,但主角依然可以全速運行.對象有自己的Dt表達式(猴子.dt),在一個游戲中希望不同對象有不同的時間尺度時,設置事件時則分別使用對應的Dt表達式(系統(tǒng).dt或者對象.dt).

image.png
image.png

其他種類使用Dt

制作幀率獨立游戲時,有關于速度的地方都需要使用Dt系統(tǒng),如角度,加速度等等.

角度

image.png

加速度

如下圖所示,為對象建立一個實例變量速度,然后通過事件設置對象向右運動為速度dt每秒,然后設置子事件,當速度<300時,設置速度增加100Dt,即對象加速度為100像素/每秒.

image.png
image.png

常見錯誤

不要在系統(tǒng)條件”每隔X秒”中使用Dt系統(tǒng).無論設備的FPS如何,”每隔X秒”條件都不受FPS影響.這個條件判斷的是時間而不是幀.例如如果你設置一個”每隔60*dt”秒條件,那么這個條件將會根據(jù)FPS產生變化,在100FPS(Dt=0.01)設備中,這個條件將會是每隔0.6(60 * 0.01)秒觸發(fā)一次,若在10FPS(Dt=0.1)設備中,這個條件將會是每隔6秒(60 * 0.1)秒觸發(fā)一次.所以當使用”每隔X秒”條件時,不需要使用DT系統(tǒng).

點擊下載全能無需編程的喚境引擎!

https://www.evkworld.cn/?c=600005&sc=600019&auto=1

Dt和幀率獨立游戲的評論 (共 條)

分享到微博請遵守國家法律
揭阳市| 扎鲁特旗| 罗平县| 鹤壁市| 锦州市| 清原| 尚志市| 竹溪县| 连南| 分宜县| 阜康市| 新乐市| 南投县| 阜南县| 宜丰县| 汤阴县| 新河县| 鄂托克前旗| 枣庄市| 社旗县| 西贡区| 三明市| 临湘市| 仙居县| 称多县| 哈尔滨市| 内江市| 密云县| 建阳市| 湄潭县| 临江市| 胶州市| 青神县| 高淳县| 百色市| 玉树县| 昌平区| 丹寨县| 和硕县| 玛纳斯县| 密山市|