【攻略】CSO lua零基礎小教室 教你製作屬於自己的lua地圖 (一)

大家好 我是misk
最近心血來潮想發一篇lua教學
初學者沒寫過程序嗎?
您沒有程序基礎卻想製作lua地圖嗎?

沒問題,這次將會介紹最最最基本的編程語言,並且教大家如何運用在CSO上!

前言

如果您連編程語言都沒碰過,必須要做個心理準備,那就是……您別想著要做出太創新的地圖,因為那些創新地圖是需要熟悉CSO的API,並且要有練習過lua的作者才做得出來的。

API是什麼?簡單來說就是連接程序與遊戲之間的橋樑。

這邊不會教你什麼程序運作原理,或是高端的程序關鍵詞,不用,您要做的就是先看懂簡單的代碼。對初學者來說,連看都看不懂了,應該也不會想接觸API吧?
所以這邊會簡單介紹一些程序基礎的東西,非常基本,讓您先看懂再下手。

創建寫程序的地方
1.打開CSO,創立地圖,進入編輯模式
2.先按V,再按8
正常來說會跳出這個畫面
3.點“新創立”(點進去他會叫你選路徑,選自己喜歡的路徑吧!),然後再點“確認”
4.前往剛剛選的路徑,照理來說會看到3個文件。
game.lua,ui.lua,project.json,初學者只需要用到game.luaui.lua就好。
可以點進去game.luaui.lua,應該會看到這行字:
沒錯,可以用記事本寫,但是我極不推薦,因為對眼睛太殘忍了,本人推薦VScode,之後的範例將都會使用這個軟體。接下來要開始接觸編程語言了喔!

程序的基本動作

一般來說,我們要先看懂3個動作。
1.聲明
程序一開始,我們需要自己創建需要的東西,例如變數,字元串….等。
變數:會變動的數字。
字元串:”你好”就是字元串。

那我們要如何聲明呢?我們看個例子。
這個代碼只有1行,也就是創建一個名叫value的變數,並且讓他為1,就這樣。

那我們只能聲明數字嗎?當然不是,但目前先提數字,字元串,布爾值(true or false)就好。
以下是範例。
這個範例有4行,分別是
創建名叫value的變數,並且讓他為1
創建名叫string的變數,並且讓他為”你好!”
創建名叫bool的變數,並且讓他為true
創建名叫float的變數,並且讓他為0.1
就這樣。

2.判斷
我們取名那些變數就是要拿來用的,因此我們可以用那些取了名的變數進行判斷,我們舉個例子。
這邊我們可以看到,用了關鍵字if==thenend,這是什麼?
我們先介紹”==”,這是一個判斷的運算符,下面列出其他的一起解釋。
==:是否相等?
~=:是否不相等?
然後學過英文就知道if的意思就是”如果”,所以第2行的意思就是:如果value等於1的話就…..,那就怎樣呢?我們需要範圍,所以就出現了then跟end。
如果value真的等於1,程序就會從then開始跑,跑到他看到end為止。相反的,如果value不等於1的話,就會省略用then跟end包住的代碼。
而被then跟end所包住的地方有一行,就是print(“value等於1”),這邊先不講解這行的意思。
3.運算
我們取名的變數除了判斷外,也可以拿來做運算,這邊我們先介紹常用的運算符。

+:加
-:減
*:乘
/:除
%:取餘數
=:讓左邊的東西等於右邊的東西(所以聲明時才用=)

我們舉個例子。
逐一講解。
先聲明value1等於1
再聲明value2等於5
再聲明一個變數,取名為value3,並讓value3等於value1加value2,value1等於1,value2等於5,所以value3就等於1+5,也就是6了。

另外要如何讓自己加1呢?例如我們聲明一個變數val為5,我們要怎麼讓val加1呢?很簡單,就是val = val + 1,因為=的意思是讓左邊等於右邊,所以就讓左邊的val等於右邊的自己+1就可以完成+1了!

程序閱讀方式
原理非常簡單,就是由上至下看,就像您看書也是一行一行看,也就是說如果您沒有先聲明就進行運算時,程序就會出錯!所以請初學者注意,在使用任何變數之前都要先確保自己已經定義了它!我們看個例子。
這邊出現了很明顯的錯誤,我們先做value加法,之後才定義它,結果當然是無法運行。

另外,程序由上往下看的特性也會出現重疊,也就是說我們可能會有需要重複給值的時候,這時候程序會隨著行數更動。例如:
這邊我們先定義了value1,並讓它為5。
再來,我們又定義了value2,並讓它為20。
但第三行又出現value2 = 100,這時程序就會乖乖的把本來為20的value2更改為100了。

問題

請問下方圖片的value為多少呢?

可以在留言區中討論喔!下一次將會講解比較難但必須知道的關鍵字,之後才會正式接觸CSO的API,哪邊不懂也可以提出來,謝謝大家觀看。
本文來自網路,不代表3樓貓立場,轉載請註明出處:https://www.3loumao.org/5310.html?variant=zh-tw
返回頂部