前言:廢話不多說,一會兒別問我一些基本觸發的問題。因為這是高階觸發(說好了...教JASS..怎麼會改成GUI...
)
--------------------------------------------------------------------------------------------------------------
高階的概念:
第一步是教導大家經常寫完觸發...結果卻是另一套。而且檢查了很多也沒有發現錯誤或變數不對的情況。
就是遊戲觸發運算中的"延遲"
可以理解為數學的先乘除,後加減吧!
但數學是每一條式子獨立進行運算,只有結果影響其他式子,或者某些特殊數在特殊情況下可以未完成計算出最終答案下,將某項數轉變為一條等式移去其他同等式子進行運算......可惜的是...這裡是WE,不是數學補習班。詳細不說。
電腦執行程式碼是不需要時間的?答案不是,但我們寫一些獨立觸發時可以理解為"是"
用例子說明,效果較好,請看以下例子。
例1:
當玩者1紅色輸入-test時,會立即執行很多種動作。但為了簡化程式。所以被設計成不需要執行時間。(但實際是在極微少的時間)
即時我們理解執行不需要時間。但WE卻創造了4個延遲函數來破壞了這條規則。Wait(TriggerSleepAction)、Wait game-time(PolledWait)、Wait for Condition、Wait for Sound(WaitForSoundBJ)
基中wait比較常用,運行原理應該是讓處理器暫停執行某條觸發(冬眠中....)讓時間過去才執行,
但這段期間。暫停的只有一條觸發而已,其他觸發仍然在執行。
當變數應用在兩條或以上的觸發,即使延遲也沒有問題。但當變數在兩條觸發中,進行同步運算或改變數值...到底,應該怎樣去執行和理解???
給大家一條複雜的例子,看看大家能否懂得將觸發執行順序排列好。
(答案請反白)
Trigger 1中的Set玩者1紅色目前的黃金為變數X是(1)
Trigger 1中的Add 變數X 的黃金給予玩者1紅色是(2)
Trigger 1中的Set玩者2藍色目前的黃金為變數X是(4)
Trigger 2中的設定變數X等於300是(3)
結果:玩者1的黃金是1000,玩者2的黃金是300。
...好累......基本上延遲教學已經7788....現在大家來實現一下.設定變數X等於休息時間...運行觸發函數wait 變數X
延遲的結論:高階觸發必須邊寫邊去與處理器同步運算這些觸發函數,特別是在製一些電影地圖,會有大量延遲函數出現。還有在迴圈內使用延遲,也須要注意這一點。
[
本帖最後由 殺戮乂之夜 於 2011-5-14 12:41 編輯 ]