gamemaker8图文教程No.2 - 关键字var的大用处(1)

分类栏目:gamemaker教程

107

近来偷摸的观察这几个GM群的东西,绝大多数同学认为,var这个东西,就是局部变量,加不加影响不大,跟直接定义变量定义值是一个效果的,比如我举个例子。

fuck = "franniss";

var fuck; fuck = "franniss";

某些人会觉得,这两个代码的效果完全是一样的,var的那一行,加不加都可以。


你要这么认为你就错了

我们不妨来这么试一下。
启动GM8.0,GMS也行= = 。。。 为了保证大家在实验的时候与本教程完全同步,推荐大家使用论坛的超强汉化破解版GM8.0
新建一个工程,创建物体和房间,并把这个物体放入到房间里。

这里我给object0放了个精灵,目的是让大家知道已经把这货添加进了房间里(我这么做貌似没啥必要,防误解还是扔进去吧。)
0.jpg

之后,就要往物体里面写代码了,在object0的创建事件中,写下如下代码

fuck = "franniss";

这是在物体上简单的定义了一个变量
接下来,在物体的空格键按下事件中,写下如下代码。

show_message(fuck);

效果可想而知,在敲击空格键的时候,屏幕上会弹出一个消息提示框,那我我们来试一下。
敲击空格键,弹出消息框:
1.jpg

一切看上去很正常,嗯。接下来,稍微改动一下代码,将创建事件中的代码改写成如下代码。

var fuck; fuck = "franniss";

这段代码,就用到了var关键字,定义了一个临时变量。
运行游戏,敲击空格键。
2.jpg

这时我们就发现,在敲完空格键之后,并没有弹出信息框,而是报了错。错误的原因是一个未知的变量fuck,
我们已经在创建事件中定义了fuck变量,为什么在按下空格事件中,这个变量不起作用呢?
实验证明,在创建事件中,已经成功的定义出了fuck变量,但是在敲击空格键的时候,这个变量就不存在了,所以,我们得出以下结论:

使用var关键字定义过的变量,只影响于当前事件,并不作用于整个实例,当事件结束的时候,这个变量会自动的从内存中删除掉。