本节学习目标:知道a=3是什么意思就OK!
变量
和其他语言一样,GML中也有变量。变量是存储信息的一段内存空间。他们各有不同的名字 以便于你去调用他们。GML中的一个变量既可以存储一个真实数字,也可以存储一个字符串。 变量并不需要像其他语言一样需要预先声明。
电脑中的内存可以简单的看做有许多小黑板构成的,每个小黑板都可以写入东西,在写新东西进去前会擦掉旧东西。
例如:a = 3
可以理解为:一个名字为 a 的小黑板,= 为赋值符号,即写入的意思!a = 3 就是把 3 写入名字为 a 的小黑板里!好理解吧...
那现在 a 里面是几?很明显是3!不会侮辱您的智商吧...
继续! a = 3
a = 2
那现在 a 里面是几?有点难度了哦!答案是 2 !本来 a 里面是 3 但是又写入了 2 还记得上面在写新东西进去前会擦掉旧东西这句话吗 ?写入 2 之前会擦掉以前的东西哦!
再来!a = 1
a = 6
a = 4
那现在 a 里面是几?是不是有想揍4我的冲动呢?
好吧!GMS中你可以在小黑板里写入:数字、字符、布尔值
例如 a = "哈哈";a = 3;a = true
正因为其值可以改变,故:其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。
a 就是我们声明一个变量(可以变化的小黑板)
要区分变量名和变量值是两个不同的概念。
变量类型
GMS中最常用的变量类型为:
实数型:简单的说就是数字 3.24 1/3 4 0
a=1/3 ; b=0
字符型:简单的说就是字母、汉字等
a="haha" ; b="我"
布尔型:也称为逻辑型只有两个“真”“假”true false
a=true ; b=false
在GML中你根本不用在意变量类型,变量(小黑板)想赋(写入)什么类型的值都可以!
例如:a=3; //把3赋值给a,现在a变量里存有数值3
a="你好" //把字符"你好"赋值给a,"你好"覆盖了以前的数值3!
也就是说,在GML中一个变量可以这会儿装字符,那会儿装数值,使用起来相当方便,但在其它计算机语言里对这要求非常严格,这也是用GML制作游戏效率,比其它语言效率高80%的部分原因!其实当你越了解GMS的时候你就发现效率何止提高80%~~!是1000%~!!!
变量赋初值
在程序中常常需要对变量赋初值,以便使用变量。例如你想使用变量 a 就必须对它进行赋初值,好告诉计算机我要使用变量名为 a 的一段内存空间了!(名字为a的一块小黑板了!)一般都在对象的create事件中初始化变量!
你给变量赋什么值它就是什么类型的变量!
例如:a = 3 ; //现在是实数型
a = "wojdfjf" //现在是字符型
a = true //现在是布尔型
这里要注意,你命名的变量名不能和GML内置的变量、函数、关键字同名~~!!(GMS有哪些关键字?不急以后就知道了)
例如:if=2 //错误 if是条件语句的关键字,不能命名这个变量!你要换个名字
iff=2 //改下就行
提示:对象必须放入房间哦!
Create:
b="haha" //初始化变量
show_message(b) //show_message是显示信息函数,它会把括号里的变量b显示出来
运行结果
应注意,在定义中不允许连续赋值,如 a=b=c=5 是不合法的。
Create:
a=b="haha"
show_message(b)
运行后系统提示错误!
变量命名
在GML中使用的词汇大概分为:标识符,关键字,运算符。
1.标识符
在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。
以下标识符是合法的:
a, x, x3, BOOK_1, sum5
以下标识符是非法的:
3s 以数字开头
s*T 出现非法字符*
-3x 以减号开头
bowy-1 出现非法字符-(减号)
在使用标识符时还必须注意以下几点:
(1)在标识符中,大小写是有区别的。例如 BOOK 和 book 是两个不同的标识符。
(2)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,作到“顾名思义”。
2.关键字
关键字是由C语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应与关键字相同。
3.运算符
运算符与变量,函数一起组成表达式,表示各种运算功能。运算符由一个或多个字符组成。
上面看不懂没关系~~~~~!!!你给你的变量(小黑板)取名字(命名)时,发现代码编辑器里你命名的变量字体颜色是黑色的就说明没问题了!!!
一般命名都是以字母开头字母结尾!
例如:dog = 1 //大概猜的到想要表达的是狗的数量是 1
复杂点的命名是以字母和下划线组成!
如果狗有几种类型怎么办呢?简单!
例如:dog_1 =2 ; //第一种狗 的数量是 2
dog_2 = 3 ; //第二种狗 的数量是 3
或:dog_haba = 2; //哈巴狗 的数量是 2
dog_simao = 3 //丝毛狗 的数量是 3
学习GML语言,要知道程序先执行哪一步,再执行哪一步,每一步是怎么执行的,每步执行后各个变量的值有何变化,这些都弄清楚了,才能说明你看懂了程序而已,看懂程序是你进步的开始!不能抱着感觉是这么个意思的想法去学习!看懂程序后再试着不看程序自己实现出来,这样你的逻辑思维就会一步步提高!
会用内置函数是最基础的知识,不要因为会了几个内置函数而沾沾自喜,这个函数你能自己敲代码实现吗?所以本教程的算法篇看起来没什么用,实际上确是你做游戏最有用的,例如背包、装备系统,就是二维数组的应用而已!算法没学好,你的水平永远提高不了。遇到不懂的地方,没关系,反复思考、反复实验、反复看、今天不会说不定过几天就看懂了,我学习算法时经常一个小算法要看1到2天才能看懂,仅仅是看懂!不过在反复看的过程中体会了其中的妙处,感觉自己的逻辑思维变强了,当然我也是新手,说得不对的地方请见谅。