的確如此。>( ゚ω゚ s)
(k ゚∀゚)<不過有時候我們不想單單依靠玩家來決定遊戲進行,並靠著其他因素來決定,例如隨機性或時間性,例子有養成遊戲常見的隨機事件,或者是AVG遊戲裡會用到時間來控制遊戲進行,從而做到一些演出效果。
(k ゚∀゚)<今次介紹如何用時間來控制遊戲進行,首先我們先說一下[wait]。
(k ゚∀゚)<[wait]是用來令劇本等待一段指定的時間,並且有兩種不同的模式來設定等待時間,不過先看看以下的範例。
今回是最終回......
[wait time=1500]
騙你的。
[wait time=1500]
騙你的。
(k ゚∀゚)<在上述的範例裡,兩句句子之間加了[wait],並把time設定為1500,為微秒(ms)為單位,即是1.5秒,所以會等待1.5秒才執行下一句。
那麼以下這樣做對不對?>( ゚ω゚ s)
1.5秒後加入背景[r]
3秒後播放SE[r]
4.5秒搖晃畫面[r]
6秒後顯示"測試結束"[p][cm]
[wait time=1500]
[image storage="bg1" page=fore layer=base]
[wait time=1500]
[playse storage="se1"]
[wait time=1500]
[quake time=500 timemode=ms]
[wait time=1500]
測試結束
3秒後播放SE[r]
4.5秒搖晃畫面[r]
6秒後顯示"測試結束"[p][cm]
[wait time=1500]
[image storage="bg1" page=fore layer=base]
[wait time=1500]
[playse storage="se1"]
[wait time=1500]
[quake time=500 timemode=ms]
[wait time=1500]
測試結束
那樣的話,6秒後吉里吉里就會顯示"測試結束",對不對?>( ゚ω゚ s)
(k ゚∀゚)<理論上是正確,不過實際上是不對的。
為什麼說得那麼深奧,到底這是對還是不對。?>( ゚ω゚ s)
(k ゚∀゚)<這4個[wait]確實各自等待了1.5秒,但你忽略了其他部分所消耗的時間,就算是顯示文字這麼簡單的東西,實際上也會消耗一些時間去運算,所以當顯示"測試結束",並不是真的是6秒後,而會有些微的誤差。隨著兩者之間的內容越多,時間的誤差亦會增加。
不過我需要較準確的等待時間,若果我真的想在6秒後吉里吉里就會顯示"測試結束",該怎麼辦?>( ゚ω゚ s)
(k ゚∀゚)<之前我說過有兩種不同的模式來設定等待時間,分別是normal和until,我們可以用mode屬性來選擇用哪一個模式,預設是normal。
(k ゚∀゚)<而當mode屬性為until時,time屬性的時間便會代表對比時間的參考點(時間原點)經過的時間,這代表等待時間將會參考這時間原點,而時間原點可以用[resetwait]來設定,以下是範例。
1.5秒後加入背景[r]
3秒後播放SE[r]
4.5秒搖晃畫面[r]
6秒後顯示"測試結束"[p][cm]
[resetwait]
[wait time=1500 mode=until]
[image storage="bg1" page=fore layer=base]
[wait time=3000 mode=until]
[playse storage="se1"]
[wait time=4500 mode=until]
[quake time=500 timemode=ms]
[wait time=6000 mode=until]
測試結束
3秒後播放SE[r]
4.5秒搖晃畫面[r]
6秒後顯示"測試結束"[p][cm]
[resetwait]
[wait time=1500 mode=until]
[image storage="bg1" page=fore layer=base]
[wait time=3000 mode=until]
[playse storage="se1"]
[wait time=4500 mode=until]
[quake time=500 timemode=ms]
[wait time=6000 mode=until]
測試結束
(k ゚∀゚)<當執行[wait]時,等待時間是比較於[resetwait]經過的時間,例如當time為6000時,等待時間便會是經過[resetwait]之後的6秒,這樣等待時間就不會受執行其他東西的影響。
(k ゚∀゚)<[wait]還有一個屬性canskip,可以設定[wait]可否因點擊滑鼠而略過,若果是true,當玩家點擊滑鼠時,[wait]會直接結束,不會等待[wait]結束。反之若果是false,玩家必須等待[wait]結束才繼續。
(k ゚∀゚)<今次就介紹到這裡,下次再見。
沒有留言:
發佈留言