大家好 我是misk
最近心血来潮想发一篇lua教学
初学者没写过程式吗?
您没有程式基础却想製作lua地图吗?
没问题,这次将会介绍最最最基本的程式语言,并且教大家如何运用在CSO上!
前言
如果您连程式语言都没碰过,必须要做个心理準备,那就是......您别想着要做出太创新的地图,因为那些创新地图是需要熟悉CSO的API,并且要有练过lua的作者才做得出来的。
API是什幺?简单来说就是连接程式与游戏之间的桥樑。
这边不会教你什幺程式运作原理,或是进阶的程式关键词,不用,您要做的就是先看懂简单的程式码。对初学者来说,连看都看不懂了,应该也不会想接触API吧?
所以这边会简单介绍一些程式基础的东西,非常基本,让您先看懂再下手。
建立写程式的地方
1.打开CSO,创立地图,进入编辑模式
2.先按V,再按8
正常来说会跳出这个画面
3.点"新创立"(点进去他会叫你选路径,选自己喜欢的路径吧!),然后再点"确认"。
4.前往刚刚选的路径,照理来说会看到3个档案。
有game.lua,ui.lua,project.json,初学者只需要用到game.lua跟ui.lua就好。
可以点进去game.lua或ui.lua,应该会看到这行字:
没错,可以用记事本写,但是我极不推荐,因为对眼睛太残忍了,本人推荐VScode,之后的範例将都会使用这个软体。接下来要开始接触程式语言了喔!
程式的基本动作
一般来说,我们要先看懂3个动作。
1.宣告
程式一开始,我们需要自己建立需要的东西,例如变数,字串....等。
变数:会变动的数字。
字串:"你好"就是字串。
那我们要如何宣告呢?我们看个例子。
这个程式码只有1行,也就是建立一个名叫value的变数,并且让他为1,就这样。
那我们只能宣告数字吗?当然不是,但目前先提数字,字串,布林值(true or false)就好。
以下是範例。
这个範例有4行,分别是
建立名叫value的变数,并且让他为1
再建立名叫string的变数,并且让他为"你好!"
再建立名叫bool的变数,并且让他为true
再建立名叫float的变数,并且让他为0.1
就这样。
2.判断
我们取名那些变数就是要拿来用的,因此我们可以用那些取了名的变数进行判断,我们举个例子。
这边我们可以看到,用了关键字if跟==跟then跟end,这是什幺?
我们先介绍"==",这是一个判断的运算符,下面列出其他的一起解释。
==:是否相等?
~=:是否不相等?
然后学过英文就知道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,哪边不懂也可以提出来,谢谢大家观看。
已更新第二章: