GameMaker标准中文教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

入门篇
GameMaker是一个很容易就可以开发你自己的电脑游戏的软件。

这一章介绍你想制作的游戏所需要的知识。

后面的章节会进一步讨论更多的功能,怎么发布你的游戏和介绍GameMaker的内建语言GML。

关于GameMaker的初级使用在下面的页面有介绍。

GameMaker制作原理
在研究GameMaker之前,最好先摸索一下GameMaker的制作原理吧。

用GameMaker 做游戏都放在一个或多个房间里。

(房间是一个平台,不是3D的,但可以包含仿3D的图片。

)在这些房间里,你可以放置物体(可以在GameMaker里定义)。

经典的物体有墙、运动的小球、主角、怪物等。

有些物体(像墙)是静止的什么都不做。

另一些物体(例如主角)会响应玩家的输入(键盘、鼠标、手柄)而运动。

或者物体跟物体间也会产生某些反应。

例如,当主角遇到怪物的时候,主角会死亡。

在GameMaker中,物体是最重要的。

首先,大多数物体都需要一些图象来让它们显示于屏幕上。

这种图象叫做精灵图象。

一个精灵图象不单可以是一张图片,可以是一套动作的图片集,用于表达物体的动作效果。

这样,就可以达到像走动,转动等效果。

在游戏中,精灵图象在某些特殊的物体里是可以改变的。

(这样当物体向左或向右走时可以显示不同的图象。

)你可以在GameMaker里制作自己的精灵图象,或者导入一些图片素材。

物体会发生某些事。

这些事叫做事件。

当事件发生时,物体会执行相对应的动作。

物体可以发生很多事件并可以响应很多不同的动作。

例如,当物体创建时会发生一个创建事件。

(说精确一点是,物体中的某个具体对象被创建;物体相当于一个类,而对象就是类的一个抽象。

)例如,当一个球被创建时你可以给它一些运动动作,这样球就可以运动了。

当两个球相遇时,会发生碰撞事件。

在碰撞事件发生时,你可以给球一个动作,让它停止或者反向运动。

或者也可以产生音效。

GameMaker可以让你定义一些声音。

当玩家敲击键盘时,会产生一个键盘事件,物体会执行相应的动作,例如移动。

我们希望你可以理解一点,设计每种物体,你要先定义事件,再在事件里加入对应的动作。

当你定义好物体之后,你应该开始设计房间了。

这样,物体才可以在房间里表演。

在游戏里房间可以用来设计关卡或者大地图的不同部分。

用动作可以从一个房间移动到另一个房间。

房间,首先,要有一个背景。

背景可以是纯色的或者是一张图片。

这种图片你可以在GameMaker里创建或者从外部调用。

(背景可以做很多东西,但暂时只是用于美化房间。

)下面,你可以将物体放到房间里了。

你可以放入多个同样的物体。

因此,例如,你可以只定义一种墙物体就可以在房间里放入很多这种墙。

你也可以放入多个同样的怪物物体,这时它们的行为是一样的。

现在你可以准备运行你的游戏了。

运行时,会先出现第一个房间。

物体也会按照设定的动作运动。

它们会根据发生的事件来执行相应的动作。

下面这些是比较重要的资源:
物体:游戏中定义有各种事件动作的实体,它们是游戏的主要表现部分。

房间:放置物体让它们活动的地方,可以理解为不同的场景。

精灵:用来展示物体的图片,它只是图片,无任何属性行为。

声音:用在一个游戏中的背景音乐或者音效。

背景:为房间定义背景的图片。

事实上还有其它很多的各种类型的资源比如说:路径、脚本、字体、时间轴等。

它们在更复杂的游戏中起到了很大的作用。

这些只有你在高级模式下运行GameMaker才可以看得到。

如果你觉得有很多细节没有看懂,没有关系,在后面的章节中,我们将分门别类的对每一个资源设置项目进行详细的讲解。

这里我们只希望可以让你对GM的运行体系有个大致的了解。

一个例子
首先最好让我们来看看一个简单例子。

我们假设你在简单模式下运行GameMaker。

第一个步我们先在脑海里大概的勾画一下我们要制作的游戏是什么样子的(你最好先做这一步工作,当你打算开发大型游戏时,你就不是简单的在脑海里勾画了,你必须有你的游戏开发进程表,以及各种有条理的书面规划,这样可以为你在以后的开发中节省很多时间)。

我们现在的个例子是很简单的:有一个球在几面墙之间弹跳,玩家可以点击球,每一次点到会得一分。

那么首先我们需要两种不同的游戏物体:球和墙。

这样我们需要两种精灵图片来表示两种物体。

最后,当我们成功点中球时我们会听到一些声音。

这个简单的游戏我们只要为它设置一个房间就可以了。

不妨让我们自己动手来做做吧,在做的过程种如果你碰到什么地方不会的话可以调出例子来看看。

(ball.gm6)
好了开始动手吧。

首先我们制作好精灵图片,从“添加”菜单菜单里我们选择“添加精灵”,你可以看到一个弹出的窗体,在“名称”选项里我们输入“wall”,选择“读取精灵”按钮并选择一个类似墙的一个小图片,这样我们就得到了一个墙的精灵图片。

现在你可以关闭该窗体了。

以同样的方法为球(ball)也建立一个精灵图片。

下面我们添加声音,从添加菜单里面选择“添加声音”,另一个窗体将会打开,给声音取一个容易识别的名字并选择“读取声音”,载入一个声音资源并试试是否是你想要的效果,如果设置好了就可以将窗体关闭。

下一步是创建两个带事件的物体,首先让我们来看看墙物体。

再次从添加菜单中选择“添加对象”,将会弹出一个比之前复杂一点的窗体。

左边我们看到是物体一些大概的相关信息。

我们给物体取一个贴切的名字并且从“精灵”下拉菜单中选择一个正确的精灵图片。

因为墙是一个固体所以我们在“固态”选项框打上沟。

现在我们来建立一个新物体,给它取名为“ball”,并且给它一个球的精灵图片。

因为球是运动的所以我们就不要钩选“固态”选项了,一会我们还要给它
设置行为动作。

在中间你可以看到一个还没有添加任何事件的空列表栏,在栏下面是一个名为“添加事件”的按钮,单击它会列出所有的事件。

选择“建立”事件,你会看到它被添加到了事件列表中。

在最右边你可以看到所有可以用的动作命令,它们都已经被分好组了。

从“移动”组里面我们选择一个8个红箭头图标的动作拖动到动作栏中,这个动作将让物体朝一个特定的方向运动。

当你完成拖动后一个对话框将会显示出来,在里面你可以指定物体运动的方向。

选择所有的箭头以便选择一个随机的运动方向。

你可以指定速度为8。

好了,现在关闭对话框。

现在球从开始建立就可以运动的事件已经设置好了。

下一步我们将要设置球碰到墙会有什么反应。

再次按“添加事件”按钮,在球的事件列表里选择“碰撞”事件,并且在下拉菜单里面选择墙物体(和墙相撞)。

在这个事件里面我们将要添加一个“反弹物体”的动作。

(在动作按钮上,你只要把鼠标放在上面几秒钟就会弹出动作介绍的帮助气球)最后我们需要定义当用户球物体被鼠标左键单击发生的行为。

添加“鼠标”事件并且从下拉菜单中选择“左键”事件。

为这个事件我们添加一些新动作:一个用来播放声音,另外一个用来更改分数值,两个动作分别可以在“主要一”组和“分数”组中找到。

还有另外两个动作是用来给球一个新的随机位置并且朝一个新的方向运动。

用同样的方法添加好。

在声音动作里面我们选择好正确的声音。

在分数动作里面,我们输入1并且在“相对”选项前点钩,意思是在当前的分数值上加一。

最后,加上一个“跳到随机位置”动作和一个8方移动的动作。

现在我们的物体就准备好了,我们还要做的是设置房间,或者说场景。

为游戏添加一个房间,再次选添加菜单选择“添加房间”,在右边你可以看到空空的房间还没有放置任何物体和背景。

左边你可以看到一些标签菜单选项。

一个用来设置背景,一个设置房间的大致属性,象长宽之类的,还有一个菜单你可以用来往房间里面添加定义好的物体,在底部你可以从下拉菜单里选择物体。

通过点击房间的指定位置你可以将物体放置在房间的指定位置。

你可以右击物体来将它删除。

用墙物体建立一个美观的方形墙壁,最后把一两个球物体放置在房间的墙壁围好的空间里面。

我们的游戏到此已经全部准备完毕。

现在是我们将要测试的时候了,单击“运行”按钮,看看会有什么发生。

如果在球刚开始运动的设置上没有发生错误,那么你试着点击它看动作是否有误。

你可以通过键盘“ESC”键停止游戏。

同时你也可以为这个小小的例子做更多的变化,比如你学了粒子效果,你可以为球添加运动的轨迹效果,并且当两球碰撞时产生火星等。

恭喜你,你已经用GM制作好了你的第一个游戏。

好了接下来,就让我们更深入的到每一个环节去学习吧。

精灵图象
精灵图像在游戏中是用于表现物体的资源(可以将物体看成灵魂,那精灵图象就是肉体)。

一精灵图像可以是一个单独的图像,也可以是一组一个接一个播放的图片集。

当你做一个游戏的时候,通常你会收集游戏里所需要的精灵图形素材。

你可以在GameMaker的网站上找到一些简单的素材,在网上也有很多。

一般格式都是gif 的。

专业游戏制作组制作游戏时会让美工设计好一套各种角色图形。

一般的爱好者可以自己动手,也可以到网络上通过其它途径寻找现有图形资源来制作游戏。

你可以通过添加菜单或者工具栏的按钮来添加精灵图象。

添加时,会打开一个精灵图象的属性窗体。

在上方你可以指定精灵图像的名称.全部精灵图像(和其它全部的资源)都要有一名称。

你最好给予每个精灵图像一个描述性的名称。

并确定所有资源有不同名称。

虽然不需要严格地遵守命名规则,但建议你在精灵图像名称上只使用文字、数字和底线符号(_) 命名(任一其它的资源也一样)并以一英文字开始。

特别是不要使用空格符,一旦你开始使用脚本后将会发现按规则命名非常重要。

要加载一精灵图像,点选“读取精灵”按钮。

将会弹出一个标准的文件打开对话框,你可以指定精灵图像。

GameMaker可以加载许多不同格式的图象文件。

当你加载一动画gif,不同的帧组成精灵图像(注意被压缩的动画gifs文件不可以被加载)。

只要精灵图像被加载,那么第一个子图形会被显示在窗体右边。

当精灵图形是动画时,你可以使用工具栏的箭号按钮来更改它们的顺序。

“透明”选项指定精灵图像的背景是否要被当成透明来处理。

大多精灵图像背景都是透明的。

背景色是由图像最左下方的像素颜色来决定。

所以要确定图像要显示的部分中没有是透明色的颜色,否则将被透明化而不被显示。

可以用“编辑精灵”按钮来处理精灵图像,或甚至创建一完全新的精灵图像。

后面章节有详细介绍。

声音与音效
大部分游戏有特定的声音效果和一些背景音乐,在GameMaker网站中也简单的提供了一些声音文件,你可以在网络上搜集更多音效资源。

添加声音资源到你的游戏中,可以在添加菜单中使用“添加声音”命令或在工具栏中使用对应的按键。

这时候会弹出一下像下面的属性窗体:
在上方你可以更改声音资源的名称。

需要加载一声音,单击“读取声音”的按钮,显示一个文件打开对话框,在上面你可以选择声音文件。

有两种类型的声音文件,wave文件和midi文件(关于mp3文件后面有介绍,因为比较特殊):wave文件通常用于短音效。

它们使用许多的内存,但是播发很快就结束。

可在你的游戏中当作音效使用。

midi文件使用较少内存,但是它们被限制在只作为背景音乐,不支持各种音效。

而且任何时间只可以有一个midi声音在播放。

你可以使用播放按键听声音效果。

有一个“保存声音”的按钮用于保存当前的声音。

这按钮不是必须的,但某些时候还是有用的。

背景
第三种基本资源是背景。

背景通常是较大的图像,常用于游戏发生的房间中做背景(或前景)。

通常背景图像可以用看不出缝隙的元件类图形用来重复排列形成。

GameMaker的网站也提供了一些简单背景图象。

要添加一背景资源到你的游戏,在增加菜单中使用“添加背景”命令或在工具栏中使用相对应的按钮。

这时将会弹出背景的属性窗体:
同样你要给背景取一个名称。

单击“读取背景”按钮以加载一背景图像。

GameMaker支持许多格式的图象文件。

要注意背景图像不可以是动画!(透明)复选框指出背景是否为部份透明,大部份背景不透明的所以默认值为否。

最左下方像素的颜色被拿来当做透明颜色。

你可以使用“编辑背景”按钮来更改背景或创建一个新背景。

物体
到目前为止你应该可以添加一些漂亮的图片和好听的声音到游戏中了,但它们不能产生任何行为。

现在我们来了解GameMaker中最重要的资源:物件。

物体是在游戏中实际动作的实体,大多数情况下它们会用精灵图像来展示自己,这样你就你可看见它们。

同样它们有行为,它们可以对一定事件作出反应,这就是物体区分于精灵图像的区别,因为它们有事件、有行为。

在游戏中你见到的放在场景中的东西都是物体(除了背景之外。

更精确地说,它们是物体的实例)。

人物、怪物、球、墙壁、等等,全部是物体。

也有一些特定物体是你不看到的,因为它没有设置一个用来显示它们的精灵图像,但是它们仍被放在场景中,它们事件在控制游戏某部分的运作。

需要了解精灵图像和物体之间的差别。

精灵图像只是(动画)图像,而没有任何行为。

通常物体有一个精灵图像代表它们的外观,但是物体有行为,没有物体游戏就不发生任何事件产生任何效果,也就没有游戏!
还要了解在物体和实例之间的差别,一个物体描述一特定的实体集合。

例如:一个怪物。

在游戏中一种物体是可以有多重实例的。

当我们谈及到一个实例时代表一个物体中一个特定的有一个ID编号的实例,当我们谈到一个物体时代表该物体中全部的实例。

也就是说一个物体可以有很多个实例用来代表这个物体来使用,物体是所有实例的总称。

物体是一个集合,实例是物体的一个抽象(如果学过面向对象编程会很容易理解,就是类跟对象的关系)。

要添加一个物体到你的游戏中,从添加菜单中选择“添加对象”。

会出现下面的窗体:
这相对来说会复杂一点。

左边有关于物体的一般信息。

在中间是物体发生的事件表列,在右边是物体对应事件的多种不同的动作。

事件和动作将会在后面的章节介绍。

同样你需要给物体一个名称。

然后你要指出用来显示物体外观的精灵图像。

在精灵图像方块中单击鼠标左键,或在靠近它的菜单按按钮单击鼠标左键,将立刻弹出一个菜单,其中包含了所有可用的已经添加的精灵图像。

选择一个你想要用来代表物体的精灵图像。

如果之前没有添加精灵图象,可以点击“新建”按钮来添加一个精灵图象。

这样会比先定义精灵图象在调用快些。

在下面有两个复选框,一是“可见”,可见表示在舞台上物体是可看见的。

一般大部份游戏在舞台上物体是可见的,但有时无形的物体是相当有用的,例如,你可以使用它们来描述怪物运动情况。

隐形的物体同样作出事件反应,且其它的实例也会发生碰撞事件。

标示“故态”的复选框指定物体是否是一个静止物体(像墙壁)。

和实体物体碰撞与和非实体物体碰撞效果是不相同的。

一般固态的都用于描述不运动的物体。

这些后面有更多介绍。

事件
GameMaker使用事件驱动物体产生动作。

那就是说,当游戏发生某些事情的时候,物体的实例会得到事件(一种告诉物体发生什么事的信息)。

物体实例可以通过执行动作来响应这些信息。

每种物体,你都可以设置事件,并说明该事件发生时,物体实例该做些什么。

物体的实例添加事件和此事件对应动作后,会在发生此事件时产生相应的动作。

这看起来似乎复杂了点,但事实上很简单。

比如事件鼠标左键单击这个事件发生,而在这个事件中添加了播放一个声音的动作,那么当在物体的一个实例上点了鼠标左键后,会播放一个声音文件。

你可以使用一个非常简单的拖放方法来指定动作。

在物体属性表单的中央,有事件列表,列出物体必须作出反应的事件。

最初是空的。

你可以增加事件到其中,由单击“添加事件”按钮。

将出现一个事件列表的小窗体。

在里面,你可选择你想要增加的各种事件。

例如,如果是键盘事件,你必须选一个按键。

在窗体右边列出了全部的动作,由小图标表示,它们已经分好类。

在下一个章节我将描述所有的动作和它们的功能。

在事件和动作之间有动作列表,列表包含当前事件的动作。

要增加动作到列表,用你的鼠标拖曳它们,从右边拖到列表中就行了,它们将照拖曳顺序排列,并有一简短的描述。

对于大多动作,你需要设置一些参数。

这些也将会在后面章节有介绍。

现在你可以开始增加动作到不同的事件里,用鼠标左键点选要设定的事件来选择,然后在其右方动作列表中拖拉动作到事件对应的动作菜单里(注意删除一个
事件时所有的事件里的动作会被全部删除。

还有如果事件里动作列表为空,那么这个事件也会自动被清除)。

你可以使用拖曳更改列表中动作的顺序。

当拖曳时假如你按住<Alt>键,将会复制这个动作。

甚至可以在不同物体中的动作列表之间使用拖曳(将一个动作拖曳到不同物体)。

当你在动作列表中的一个动作上点选鼠标右键时,会弹出一个菜单,其中你可以删除动作(也可由使用<Del>按键来完成)或复制和粘贴动作。

按<Ctrl>+<A>键可以选中所有动作。

当你将你的鼠标指针放在一动作上方不动,会显示鼠标停留的动作的简介。

更多有关动作的信息后面还有介绍。

用Delete键可以删除事件以及它所有的动作。

假如你想要指定动作到一不同的事件请单击标示更改的按键,并选择你想要的新事件(新的事件不能是已经被使用过了的)。

某些事件名称的旁边有一菜单符号紧邻着它表示在里面为事件的集合,有很多可选事件。

当你在菜单上单击鼠标按键,或在事件名称上点鼠标右键,出现菜单让你可以挑选想要更改的事件。

下面为几个常用事件介绍:
建立事件:当物体的一个实例被创建(或者说是放到场景上时)触发事件,是物体实例的第一个执行的事件,一般用来为实例设定特定变量以及定义物体开始时的运动或者要发生的动作。

破坏事件:当实例在场景中被删除时触发的事件。

更精确地说,它发生在实例被摧毁之前的瞬间,所以当事件在执行时,实例还存在!例如你可以让一个魔鬼死亡/消失时发出大叫声(播放一个声音文件),或者使用它来更改游戏分数,或者创建别的物体。

计时器事件:每个实例有12个定时时钟,可以精确控制物体在某刻发生某个动作,你可以给时钟设置一定的动作,再给时钟设置一个倒计时步数,然后时钟倒数计时直到步数到0,在那个瞬间时钟事件触发,时钟里的动作执行。

要指定动作到一给定的时钟,首先你需要在菜单中选择它。

时钟非常有用,你可以使用它们去让特定的行为不断发生。

例如一个怪物在每20步更改它运动的方向一次(要实现这中效果你可以在时钟事件里的动作里再设定时钟这样就会反复被激发)。

步事件:步事件发生在游戏的每一个步里,因此你可用于放那些需要被连续执行/一直发生的动作。

例如,假如一个物体要会跟随别的物体时,你可以在步事件里把这个物体坐标设为要给跟随物体的坐标加减一点请小心使用这个事件,在有步事件的物体中,不要用过多复杂的动作,否则会大大减慢游戏速度。

其中有三种不同的步事件。

通常你只需用默认的步。

你也可以通过弹出菜单选择开始步和停止步事件。

开始步事件是在每个步的最起初执行,注意它在发生任何事件之前。

正常的步事件是物体实例被放到它们的新位置之前执行。

停止步事件是在步的结束时执行,在物体绘制之前。

常使用在如按照当前方向来更改精灵图像。

碰撞事件:不论何时当两物体实例碰撞(也就是,它们的精灵图像重迭)时,发生碰撞事件。

精确地说是两个碰撞事件发生:因为每个实例各设置了一个碰撞事件。

实例可以对碰撞作出反应。

要设置碰撞,先点碰撞事件菜单,再选择你想要定义碰撞事件的物体,其次你把动作放在动作列表里。

实例与一固态物体和一非固态物体碰撞时是有差别的。

首先,当在碰撞事件中没有添加动作时,什么也不会发生:当前的实例保持原来的运动,即使被碰撞的物体是故态也如此。

当碰撞事件包含了动作时,则出现下面的情形:当被碰撞物体是固态物体,实例先被放回它先前的位置(即在碰撞发生之前的位置),接着执行碰撞事件。

最后,实例被放到它的新位置。

当被碰撞物体不是固态物体时,原先实例不会被放回,实例仅在它当前的位置上执行事件,并且,碰撞不会检查两次。

稍微想一下就明白这是理所当然的。

因为物体不是固态物体,我们可在它上面移动。

碰撞事件有许多用处,物体实例可以使用它来实现墙壁的反弹。

你可以使用它来销毁物体假如它们被子弹击中等等。

键盘事件:当游戏者按下键盘上的键时,按键事件就发生了。

每个按键,可以设置不同的事件。

在菜单中你挑选需要被定义按键事件的按键,然后再添加动作。

通常,游戏里只有少数的物体会用到少量的按键。

当压住按键不放时,该键所定义的动作会一直循环执行。

有两个特别的按键事件,一个称为“没有按键”,当没有按下键时,事件会发生在每步中;第二个称为“任意键” ,当任意键被按下时发生。

注意在键盘右方数字小键盘中,要按<NumLock>按键激活数字键盘,数字按键事件才会有作用。

鼠标事件:当鼠标光标停在代表精灵图像的实例上时,产生了此物体实例的鼠标事件。

按照鼠标的按键情形而定,有<没有按键>,<左键>,<右键>,或<中键>事件等等。

当游戏者一直按着鼠标按键不放时,鼠标按键事件会在每一步中发生。

按下事件是当按键被压下时发生,注意只发生一次。

释放事件是当压下的按键被放开时发生。

注意事件只在鼠标光标移到实例上时才发生。

如果你想在任意位置都可以响应鼠标事件,你可以用全局鼠标事件。

还有两个特别有用的事件,一个为鼠标移到物体实例上时发生的事件,一个为鼠标移出物体实例时发生的事件。

鼠标滚轮的滚动也可产生事件。

最后还有些关于游戏手柄的事件。

其他:
还有一些其它的事件在游戏中也是很有用的。

可以在菜单中找到:
·离开房间:当实例的位置完全在场景的外面时触发事件。

·与房间边界碰撞后触发:当实例与场景的边界相交时触发事件。

·游戏开始:当游戏开始时触发了事件,适用于第一个场景中全部的实例。

它在房间开始事件之前发生(后面有介绍)甚至在场景中物体实例的创建事件之前发生。

它经常用来定义某些背景音乐和初始化某些变量,或加载某些文件资料/游戏动画等。

要注意只能由一个物体定义此事件。

相关文档
最新文档