大家好 我是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,哪边不懂也可以提出来,谢谢大家观看。