3DGS指令碼翻譯(3) 函式

2021-04-15 17:42:26 字數 3493 閱讀 9775

來看個小例子:

function add_numbers( )

看到什麼了嗎?函式不過就是個綜合陳述。它由一些符合

c-script

的**組成。來看看這些函式都有些什麼:

1.乙個函式由關鍵字

function

定義並且帶上圓括號()。

2.函式體應該寫在一對大括號的內部

。 3.函式體由多行

c-script

**組成,用分號結束。

4.函式名沒有很大限制,但你應該按照為變數命名那樣的慣例。

5.不能為變數和函式起一樣的名字,這會導致錯誤。

如果你能閱讀這篇指南我希望你知道自己的年齡。不是按年,而是按天!什麼,你不知道?你想我們寫個函式來計算天數?ok,讓我們試著寫個函式來計算我或你出生後度過的天數。這會用到一些變數,因此我們最好先定義它們:

var my_age = 33;//

你的年齡

(按年算

) 在這裡

var days_a_year = 365;

var number_of_days;

到現在沒什麼新東西。我們定義了3個變數,兩個放了初始值,因為我知道自己的年齡和一年由365天。我有些緊張-這函式會工作嗎?

我知道如何開始。我寫關鍵字function接著寫函式名,叫

compute_days

function compute_days()

我記住了要加上第二個大括號。我很好奇這函式能不能工作,因此我準備了個小指令碼檔案來測試。開啟sed,選擇選項-配置,選擇

script03

來執行:

開啟script03

檔案在workshop03

資料夾中:

**看起來很簡單,不是嗎?我們已經知道了如何使這些變數工作,我們知道了如何寫注釋……複製函式

compute_days

從這篇文章並貼上在

main()

函式之前:比如第

26行:

它工作了……但什麼都沒發生!我可以看到藍色的螢幕和乙個0……我只有0天大?我想我大多了!

**肯定有什麼錯誤。我知道我複製的函式肯定正確!我該怎麼做?

我們寫了個函式假定可以執行,但我們沒「叫」它,我們沒讓他執行。想象一下你想慶祝你的生日並僱了個樂隊。它們到了你的房子並且做在角落什麼都沒做,等著你的命令。你站在這裡,不告訴它們開始演奏,並且想知道為什麼你聽不到它們的**……我們的函式也發生了同樣的事情:寫了卻沒叫它執行.

ok,現在我們準備開始:我如何執行新的函式?別忘了我們的可信賴的朋友-控制台。按測試執行,按tab來顯示控制台並輸入以下文字:

compute_days( );

太神奇了!它工作了!我有

12045

天大!

ok,現在激情已經被減少了,我開始感到不舒服:我每次執行指令碼都要開啟控制台並鍵入我的函式名嗎?答案是否定的,我們可以呼叫任何指令碼內的函式。來鍵入呼叫函式這行到main函式內部,就像下面這樣:

到了測試執行的時候了……

ok,這次它工作了,但我不確定什麼發生了,是main函式特殊還是什麼?是的,main是預先定義的函式,所以別建立其他的函式叫main。這個特殊的函式會自己執行。來看看main函式裡面的**:

function main()

**載入名叫

work03_wmb

的關卡並且呼叫我們的函式。

ok,現在看下我們如何呼叫那函式:我們寫下函式名帶上括號,**行末尾加上分號。聽起來很合理,不是嗎?

function main()

function compute_days()

引擎會說:oh,這是main函式,我知道;我需要每次都執行它。它現在說什麼?我要載入乙個名叫

work03_wmb

的關卡……我知道這個關卡嗎?

sorry

,我當然知道,它在

script03

檔案的13

行定義了,在

main

函式前面。

ok,接下來是什麼?

compute_days( )

。這是什麼函式?我不知道!我不知到它想讓我幹什麼。我要去顯示乙個錯誤訊息並休息一下。

別忘了先定義你的函式,否則以使用時引擎會抱怨。你也可以看到為什麼健全的人都不想共享它們的

3dgs

副本給「朋友」或同事:沒個引擎都有自己獨特的註冊名字和數字,因此如果我想共享我的引擎給某人,

conitec

會窮追不捨的抓住並懲罰我……相信我,它們愛好這個!

也許你想知道為什麼這次不需要建立關卡。我已經決定給你建造個關卡,引擎已經在

workshop03

資料夾中找到並載入。如果你想建造

wmb關卡檔案,啟動

wed,開啟

work03

並建造它。

你渴望去學到更多嗎?我們愉快的

c-script

世界旅程證明是很簡單的,不是嗎?下個教程會告訴我們如何建立面板:顯示所有圖形等的基礎。只要你看到以個或圖形在螢幕上,這肯定有個面板定義在它後面。

HGE教程翻譯(3)

這次我們會學習使用 hge的一些幫助類。首先,包含所有需要的標頭檔案並宣告 hge全域性指標,大多數幫助類都需要它。include include include include hge hge 0 現在宣告 hge物件。hgesprite spr hgesprite spt hgefont fnt...

linux shell指令碼基礎 3

6.函式 function name 注意 必須在呼叫乙個函式之前先對它進行定義,不存在前向宣告 當乙個函式被呼叫時,指令碼程式的位置引數 1,2等 會被替換為函式的引數。這也是讀取傳遞給函式的引數的辦法。當函式執行完畢後,這些引數會恢復為它們先前的值。可以通過return命令讓函式返回數字值 注意...

lua指令碼學習3

兩個減號是單行注釋 多行注釋 多行注釋 lua 表示符用於定義乙個變數,函式獲取其他使用者定義的項。標示符以乙個字母 a 到 z 或 a 到 z 或下劃線 開頭後加上0個或多個字母,下劃線,數字 0到9 最好不要使用下劃線加大寫字母的標示符,因為lua的保留字也是這樣的。lua 不允許使用特殊字元如...