前言:
对于接触过编程的玩家,E2的语法是相对简单的,类似于简化的C语言,所以学起来是非常快的。对于没接触过编程的玩家,刚接触的时候会感觉无从下手,但只要仔细琢磨,很快就能理解。因为内容简单,很适合用来启蒙编程思想,对未来接触编程专业有一定帮助。
我尽量从编程最基础的知识点讲起,希望能让没编过程的玩家掌握编程的基本思想。对于早已接触过编程的人,可以选择跳过本篇很多部分的内容。我会在每节进行注释表示哪些是必看的,哪些是选看的。
希望能在此帮到各玩家,并且将E2发扬光大。
下面的内容我以教科书为参考,自己就自己的经验来写教程,如果有更好的想法或者发现我的问题,请尽快与我联系。
编程(选读)
计算机的程序说到底就是一系列数学计算的结果,通过不同类型的数据的不同操作计算得到需要的结果并输出,便是一个程序的基本运行方式。构成程序的基本单位是函数,函数就是一个计算过程,输入数据,输出计算结果。通过很多不同的函数实现某些功能,这便是一个程序。
(一)数据类型和表达式(必读,与C语言大致相同)
1、基本字符和标识符
E2的基本字符包括:字母、数字、空白符、标点和特殊字符。
字母:小写字母a~z共26个,大写字母A~Z共26个。
数字:0~9共10个。
空白符:空格符、水平制表符和换行符统称为空白符。空白符只在字符常量和字符串常量中起作用,在其他地方出现时只起间隔作用。在程序中适当添加空白符,提高程序清晰性和可读性。
标点和特殊字符:主要有, “” ‘’ ! | & ^ $ % / * - + < > { } ( ) [ ] #等。
2、关键字
E2的关键字都为小写,具有严格的定义。
数据类型关键字:
number(数字),string(字符串),entity(实体),vector(三维向量),vector2(二维向量),vector4(颜色),angle(角度),array(数组),table(表),wirelink(数据线),ranger(测距器),bone(骨头)。
还有Matrix(矩阵)和Complex number(复数)还有Quaternion(四元数)这三个我也没用过,新手就不提了,希望有大佬来补充这三个
流程控制关键字
跳转结构:return,continue,break
分支结构:if,else,switch,case,default
循环语句:for,while
3、标识符
E2的标识符全部由大写字母开头,后面只能接英文字母,下划线及数字组成。
(二)常量和变量(必读)
1、常量没什么好说的,最多说一个字符串要用英语双引号包起来。
2、变量
通俗的讲,变量就是程序运行过程中其值发生变化的量。
变量的定义方式有两种 全局变量 和 局部变量
全局变量通过代码开头的@persist来定义
在@persist后面写上全局变量的变量名和数据类型来定义
定义格式 变量1:数据类型 变量2:数据类型 变量3:数据类型 中间由空格隔开
多个变量是同一数据类型也可以这样 [变量1 变量2 变量3]:数据类型
注意 变量名就是前面的标识符
变量名全部由大写字母开头,后面只能接英文字母,下划线及数字组成。
所以完全的写法就是
@persist 变量1:数据类型 变量2:数据类型 [变量3 变量4 变量5]:数据类型
@persistX:number E:entity [A_1 A_2]:angle
局部变量就很方便了 随便给它赋值就行了
如 A=123 A就会自动变成数字类型 一旦 定义后数据类型不能再改变
但局部变量有其作用域
一旦程序用不到A后 A便消失
故局部变量是一次性的 程序运行一次后,其内部数据就消失了
(三)数据类型(必读)
1、number(数字):单纯的数字,用于计算,不区分是整数还是小数,数据大小极限我不清楚,但一般情况都够用。
2、vector(三维向量):内容包括x y z三个轴的数据,常用于储存坐标数据。也用来表示颜色。用vec(x,y,z)来生成一个三维向量常量。对于颜色,x y z分别对应RGB色彩模式的R G B 三个值。
3、vactor2(二维向量):比前者少一个z轴数据。
4、vector4(颜色):比vector的颜色多了一个值来表示透明度。
5、entity(实体):用于储存游戏内的实体信息,作为实体操作的接口。
6、angle(角度):内容包括pitch yaw roll 三个轴的数据 用angn(n,n,n)表示角度常量。
7、string(字符串):用于储存字符串数据,用双引号表示字符串常量,如”abcd”
8、array(数组):用于储存数据组,通过 数组名[位置编号,数据类型]来进行对数组内单个元素的读取和赋值
9、table(表):和数组大同小异,可以用字符串来给内部元素命名
10、ranger(测距器):这个以后再开另一个帖子讲
11、bone(骨头):同上
12、wirelink(数据线):同上
还有Matrix(矩阵)和Complex number(复数)还有Quaternion(四元数)这三个我也没用过,新手就不提了,希望有大佬来补充这三个
由于E2没有内存操作,故不用在意数据类型的储存空间大小。
(四)算数运算和算数表达式
算数是程序的运行基础
编程的算数有三种分别是数据计算、关系运算和逻辑计算
数据计算
基本的计算有 +、-、*(乘)、/(除)、%(取余)
加减乘除不说了 关键是取余
取余得到的是除法的剩余数
如 9除2等于4余1
1便是取余得到的结果,故9%2=1
注意 取余只能用在整数上
我们还需了解赋值这个概念
我们定义的变量默认值都是0,什么也没有,我们需要不断的进行计算和赋值来输入计算数据和储存计算结果
如定义数字变量A B C
A=2 这样就是给A赋了一个2的值
B=3 这样就是给B赋了一个3的值
C=A+B 那么很C便是A和B的和也就是5 ,C被赋值5。
关系运算
常用的逻辑计算有 ==(等于),<(小于),>(大于),<=(小于等于)、>=(大于等于)、!=(不等于)
比较两者的关系 输出1或0,1代表真,0代表假
如 1<2 输出的是1 这是对的是“真”的
又如 1==2 输出的是0 这是错的是“假”的
逻辑运算
程序是有逻辑性的,通过比较和判断,得到相应的操作。
这便要用到逻辑计算
逻辑运算包括三个:&(与)、|(或)、!(非)
与或非 三个逻辑运算的关系用真值表表示便是
(1真、0假)
*逻辑运算里面非0的值都代表真 只有0代表假
我这里就粗略讲讲,详细内容请自行百度。
4、算数表达式
我们都只知道,当计算式子很长时,我们要注意计算的先后顺序
先乘除取余,后加减,再赋值
这种顺序被称为优先级
优先级高的先计算,优先级相同的从左到右计算
相信上过小学的都知道一条算式要怎么写怎么算
在这里我就不细说了,单纯举几个例子看看就能懂
(1+2)*3/5的结果为1.8
(4*5*6)%7的结果为1
((5*20)==100)的结果为1
(1+3>2+2)的结果为0
(((5*20)==100)&(1+3>2+2))的结果为0
A=5B=10 C=(A<B) C的值为1
5、条件运算符
条件运算符我基本不用,但是用起来很方便。
例子如下
条件表达式 ? : N
如果表达式的值为真(非零)则输出1
如果表达式的值为假(零)则输出N
如
(1<2 ? : 5)结果为1
? : 5)结果为5
6、其他运算符
我这边先不讲 以后有机会再说 分别是~ $
对于接触过编程的玩家,E2的语法是相对简单的,类似于简化的C语言,所以学起来是非常快的。对于没接触过编程的玩家,刚接触的时候会感觉无从下手,但只要仔细琢磨,很快就能理解。因为内容简单,很适合用来启蒙编程思想,对未来接触编程专业有一定帮助。
我尽量从编程最基础的知识点讲起,希望能让没编过程的玩家掌握编程的基本思想。对于早已接触过编程的人,可以选择跳过本篇很多部分的内容。我会在每节进行注释表示哪些是必看的,哪些是选看的。
希望能在此帮到各玩家,并且将E2发扬光大。
下面的内容我以教科书为参考,自己就自己的经验来写教程,如果有更好的想法或者发现我的问题,请尽快与我联系。
编程(选读)
计算机的程序说到底就是一系列数学计算的结果,通过不同类型的数据的不同操作计算得到需要的结果并输出,便是一个程序的基本运行方式。构成程序的基本单位是函数,函数就是一个计算过程,输入数据,输出计算结果。通过很多不同的函数实现某些功能,这便是一个程序。
(一)数据类型和表达式(必读,与C语言大致相同)
1、基本字符和标识符
E2的基本字符包括:字母、数字、空白符、标点和特殊字符。
字母:小写字母a~z共26个,大写字母A~Z共26个。
数字:0~9共10个。
空白符:空格符、水平制表符和换行符统称为空白符。空白符只在字符常量和字符串常量中起作用,在其他地方出现时只起间隔作用。在程序中适当添加空白符,提高程序清晰性和可读性。
标点和特殊字符:主要有, “” ‘’ ! | & ^ $ % / * - + < > { } ( ) [ ] #等。
2、关键字
E2的关键字都为小写,具有严格的定义。
数据类型关键字:
number(数字),string(字符串),entity(实体),vector(三维向量),vector2(二维向量),vector4(颜色),angle(角度),array(数组),table(表),wirelink(数据线),ranger(测距器),bone(骨头)。
还有Matrix(矩阵)和Complex number(复数)还有Quaternion(四元数)这三个我也没用过,新手就不提了,希望有大佬来补充这三个
流程控制关键字
跳转结构:return,continue,break
分支结构:if,else,switch,case,default
循环语句:for,while
3、标识符
E2的标识符全部由大写字母开头,后面只能接英文字母,下划线及数字组成。
(二)常量和变量(必读)
1、常量没什么好说的,最多说一个字符串要用英语双引号包起来。
2、变量
通俗的讲,变量就是程序运行过程中其值发生变化的量。
变量的定义方式有两种 全局变量 和 局部变量
全局变量通过代码开头的@persist来定义
在@persist后面写上全局变量的变量名和数据类型来定义
定义格式 变量1:数据类型 变量2:数据类型 变量3:数据类型 中间由空格隔开
多个变量是同一数据类型也可以这样 [变量1 变量2 变量3]:数据类型
注意 变量名就是前面的标识符
变量名全部由大写字母开头,后面只能接英文字母,下划线及数字组成。
所以完全的写法就是
@persist 变量1:数据类型 变量2:数据类型 [变量3 变量4 变量5]:数据类型
@persistX:number E:entity [A_1 A_2]:angle
局部变量就很方便了 随便给它赋值就行了
如 A=123 A就会自动变成数字类型 一旦 定义后数据类型不能再改变
但局部变量有其作用域
一旦程序用不到A后 A便消失
故局部变量是一次性的 程序运行一次后,其内部数据就消失了
(三)数据类型(必读)
1、number(数字):单纯的数字,用于计算,不区分是整数还是小数,数据大小极限我不清楚,但一般情况都够用。
2、vector(三维向量):内容包括x y z三个轴的数据,常用于储存坐标数据。也用来表示颜色。用vec(x,y,z)来生成一个三维向量常量。对于颜色,x y z分别对应RGB色彩模式的R G B 三个值。
3、vactor2(二维向量):比前者少一个z轴数据。
4、vector4(颜色):比vector的颜色多了一个值来表示透明度。
5、entity(实体):用于储存游戏内的实体信息,作为实体操作的接口。
6、angle(角度):内容包括pitch yaw roll 三个轴的数据 用angn(n,n,n)表示角度常量。
7、string(字符串):用于储存字符串数据,用双引号表示字符串常量,如”abcd”
8、array(数组):用于储存数据组,通过 数组名[位置编号,数据类型]来进行对数组内单个元素的读取和赋值
9、table(表):和数组大同小异,可以用字符串来给内部元素命名
10、ranger(测距器):这个以后再开另一个帖子讲
11、bone(骨头):同上
12、wirelink(数据线):同上
还有Matrix(矩阵)和Complex number(复数)还有Quaternion(四元数)这三个我也没用过,新手就不提了,希望有大佬来补充这三个
由于E2没有内存操作,故不用在意数据类型的储存空间大小。
(四)算数运算和算数表达式
算数是程序的运行基础
编程的算数有三种分别是数据计算、关系运算和逻辑计算
数据计算
基本的计算有 +、-、*(乘)、/(除)、%(取余)
加减乘除不说了 关键是取余
取余得到的是除法的剩余数
如 9除2等于4余1
1便是取余得到的结果,故9%2=1
注意 取余只能用在整数上
我们还需了解赋值这个概念
我们定义的变量默认值都是0,什么也没有,我们需要不断的进行计算和赋值来输入计算数据和储存计算结果
如定义数字变量A B C
A=2 这样就是给A赋了一个2的值
B=3 这样就是给B赋了一个3的值
C=A+B 那么很C便是A和B的和也就是5 ,C被赋值5。
关系运算
常用的逻辑计算有 ==(等于),<(小于),>(大于),<=(小于等于)、>=(大于等于)、!=(不等于)
比较两者的关系 输出1或0,1代表真,0代表假
如 1<2 输出的是1 这是对的是“真”的
又如 1==2 输出的是0 这是错的是“假”的
逻辑运算
程序是有逻辑性的,通过比较和判断,得到相应的操作。
这便要用到逻辑计算
逻辑运算包括三个:&(与)、|(或)、!(非)
与或非 三个逻辑运算的关系用真值表表示便是
(1真、0假)
*逻辑运算里面非0的值都代表真 只有0代表假
我这里就粗略讲讲,详细内容请自行百度。
4、算数表达式
我们都只知道,当计算式子很长时,我们要注意计算的先后顺序
先乘除取余,后加减,再赋值
这种顺序被称为优先级
优先级高的先计算,优先级相同的从左到右计算
相信上过小学的都知道一条算式要怎么写怎么算
在这里我就不细说了,单纯举几个例子看看就能懂
(1+2)*3/5的结果为1.8
(4*5*6)%7的结果为1
((5*20)==100)的结果为1
(1+3>2+2)的结果为0
(((5*20)==100)&(1+3>2+2))的结果为0
A=5B=10 C=(A<B) C的值为1
5、条件运算符
条件运算符我基本不用,但是用起来很方便。
例子如下
条件表达式 ? : N
如果表达式的值为真(非零)则输出1
如果表达式的值为假(零)则输出N
如
(1<2 ? : 5)结果为1
? : 5)结果为5
6、其他运算符
我这边先不讲 以后有机会再说 分别是~ $