【冰話XS】003:XS基本語法(上)

※☆冰の引言☆※
前面詳細(xì)介紹了XS的簡要定義和雜談攻擊前搖,關(guān)于抬手方面大家應(yīng)該也有比較全面的認(rèn)識了,下面就來講講XS的基本要素和一些可用的數(shù)學(xué)類函數(shù)。

※☆XSの基本要素☆※
XS在游戲中是通過 “腳本調(diào)用” 這個條件/效果實現(xiàn)的,具體條件/效果如何使用下文會詳敘。
前文已述,XS是一種脫胎于C語言的變種語言,所以一般語法邏輯都是依照 C++ 之類的語法規(guī)則來定制的。游戲中系統(tǒng)會隨時檢測是否符合語法規(guī)則;如果出現(xiàn)語法錯誤,腳本調(diào)用的條件/效果會變成紅色,系統(tǒng)會彈框報錯,提示你修改錯誤。寫完腳本調(diào)用你可點一下其他任意的觸發(fā),如果語法正確,原來寫腳本調(diào)用的那個觸發(fā)會由紅色轉(zhuǎn)為綠色,與此同時該觸發(fā)下的腳本調(diào)用條件/效果也會變成綠色,只有語法正確的腳本調(diào)用才會在觸發(fā)欄變成綠色并且不會出現(xiàn)彈框。
※☆XS的首要原則:
必須使用ASCII字符串(英文字母/英文空格/英文標(biāo)點),不能用全角、漢字等非ASCII字符,即使是用英文雙引號括起的字符串,否則就會出現(xiàn)彈窗報錯。
對于函數(shù)中的變量必須要先聲明類型再使用,嚴(yán)禁變量在使用前未聲明類型。
對于函數(shù)必須同樣要先在條件中定義,才能通過效果進行調(diào)用,不能在函數(shù)未定義時調(diào)用。
自定義函數(shù)示例:
這里默認(rèn)講解的是無參數(shù)的函數(shù),有參數(shù)的函數(shù)以后再講。

--- 關(guān)于函數(shù)/變量的Q&A ---

※☆以下是各數(shù)據(jù)類型詳解:

一個函數(shù)可包括以下部分:
返回值的類型: int,float,string,bool,vector?和 void?。
自定義函數(shù)名規(guī)范:函數(shù)名只能使用?A~Z、a~z、0~9、下劃線(_),且首字符不能是數(shù)字。
0個或N個參數(shù):(類型 名稱=設(shè)定值)。在調(diào)用函數(shù)時,輸入不同的值可以改變參數(shù)的值。參數(shù)只能在函數(shù)內(nèi)部使用,函數(shù)執(zhí)行結(jié)束就會被銷毀。
變量表達式:函數(shù)被調(diào)用時執(zhí)行。表達式可用參數(shù)作為變量,也可調(diào)用其他已定義函數(shù)。
return?語句:可選??勺尯瘮?shù)立即結(jié)束執(zhí)行,并返回一個值,如果不寫?return?語句,則默認(rèn)返回?void(空值)。
變量表達式格式要求:
一個腳本調(diào)用可視作一個子單元,變量名在子單元內(nèi)部必須是唯一的,具有排他性,命名規(guī)則參照函數(shù)名命名規(guī)則,函數(shù)名可以與變量名重名,兩者互不影響。
xs語言區(qū)分大小寫,所以 Resource?和 resource?是兩個不同的變量/函數(shù)。
變量/函數(shù)名名稱不能使用xs語言關(guān)鍵字(exp:int,float,void,string,bool etc.)
賦值必須符合數(shù)據(jù)類型的格式要求(比如不能給整型變量設(shè)一個浮點型值:int?a?=?5.2)
表達式末尾必須帶一個英文分號,作為一句代碼的結(jié)尾標(biāo)識,可在同一行寫多條語句(exp:int?a?=?1;?int?b?=?2;?)
浮點數(shù)值為0.0時,將被視為一個正數(shù)
等號(=)是賦值標(biāo)志,表示把 右側(cè)值 賦值給 左側(cè)變量(exp:int?a?=?1;?int?b?=?a; 結(jié)果是b=1)
main 只能作為函數(shù)名,而不能作為變量名

※☆變量作用域&靜態(tài)變量☆※
XS中的變量同C++一樣,都存在局部變量和全局變量。下面就簡單看一下這兩者的差異對比。
[局部變量]- 在函數(shù)內(nèi)部定義的變量。它只能在這個函數(shù)內(nèi)部訪問和修改
[全局變量]- 在函數(shù)外部定義的變量。它在定義后可在代碼的任何地方都可以訪問并修改值
全局變量的變量名在整個場景中可以多次修改,但只能定義一次。
任何函數(shù)都可訪問或修改全局變量的值,只有在函數(shù)體內(nèi),才能修改或訪問局部變量的值
在定義新變量或函數(shù)參數(shù)時,無論是在何處,都不可以與全局變量同名。
[靜態(tài)變量] - 被保護的局部變量
靜態(tài)變量脫胎于局部變量,屬于局部變量一個變種。但與函數(shù)用完就被系統(tǒng)銷毀的普通局部變量不同,靜態(tài)變量在函數(shù)執(zhí)行結(jié)束后會保留數(shù)值,用于下一次使用。而且靜態(tài)變量在首次被定義初始化后,就不會再被定義語句初始化了。
可見,靜態(tài)變量不會在函數(shù)執(zhí)行完畢后被清掉,而是留下來被不斷累加了。
靜態(tài)變量的用法:
記錄一個函數(shù)被調(diào)用過多少次
作為一個低配版的全局變量使用

※☆XS中的三個數(shù)學(xué)運算函數(shù)&浮點型←→整型轉(zhuǎn)換☆※?
XS中有三個常用的數(shù)學(xué)運算函數(shù),現(xiàn)羅列于下,分享于諸位。
數(shù)據(jù)類型之間的轉(zhuǎn)換:(int←→float)
數(shù)據(jù)類型轉(zhuǎn)換只能通過新定義一個變量,然后賦值來轉(zhuǎn)換類型,只能使用隱式變換。
這里只介紹浮點型與整型之間的轉(zhuǎn)換(其他類型的轉(zhuǎn)換在帝國2中基本不會用到)。
浮點數(shù)→整數(shù):
整數(shù)→浮點數(shù):
常數(shù)定義:

※☆冰の小結(jié)☆※
千里之行始于足下,萬丈高樓平地起,想要對XS融會貫通靈活運用,這些基礎(chǔ)知識必不可少。所以這里將用三個專欄講清楚XS零散的基本語法規(guī)范,為后續(xù)真正函數(shù)的應(yīng)用打下堅實的基礎(chǔ)。下一篇章將著重描述運算符在XS中的使用以及條件、效果中的腳本調(diào)用如何通過觸發(fā)在游戲中運作并發(fā)揮其作用。
欲知后事如何,請聽下回分解。


