《GameMaker标准中文教程认真的游戏.doc》由会员分享,可在线阅读,更多相关《GameMaker标准中文教程认真的游戏.doc(70页珍藏版)》请在三一办公上搜索。
1、GameMaker标准中文教程_认真的游戏说明:早期版本教程,仅供参考。原exe 版电子书下载地址:(勿用下载工具,这是下载页面)http:/cid-入门篇GameMaker是一个很容易就可以开发你自己的电脑游戏的软件。这一章介绍你想制作的游戏所需要的知识。后面的章节会进一步讨论更多的功能,怎么发布你的游戏和介绍GameMaker的内建语言GML。关于GameMaker的初级使用在下面的页面有介绍。GameMaker制作原理在研究GameMaker之前,最好先摸索一下GameMaker的制作原理吧。用GameMaker做游戏都放在一个或多个房间里。(房间是一个平台,不是3D的,但可以包含仿3D
2、的图片。)在这些房间里,你可以放置物体(可以在GameMaker里定义)。经典的物体有墙、运动的小球、主角、怪物等。有些物体(像墙)是静止的什么都不做。另一些物体(例如主角)会响应玩家的输入(键盘、鼠标、手柄)而运动。或者物体跟物体间也会产生某些反应。例如,当主角遇到怪物的时候,主角会死亡。在GameMaker中,物体是最重要的。首先,大多数物体都需要一些图象来让它们显示于屏幕上。这种图象叫做精灵图象。一个精灵图象不单可以是一张图片,可以是一套动作的图片集,用于表达物体的动作效果。这样,就可以达到像走动,转动等效果。在游戏中,精灵图象在某些特殊的物体里是可以改变的。(这样当物体向左或向右走时可
3、以显示不同的图象。)你可以在GameMaker里制作自己的精灵图象,或者导入一些图片素材。物体会发生某些事。这些事叫做事件。当事件发生时,物体会执行相对应的动作。物体可以发生很多事件并可以响应很多不同的动作。例如,当物体创建时会发生一个创建事件。(说精确一点是,物体中的某个具体对象被创建;物体相当于一个类,而对象就是类的一个抽象。)例如,当一个球被创建时你可以给它一些运动动作,这样球就可以运动了。当两个球相遇时,会发生碰撞事件。在碰撞事件发生时,你可以给球一个动作,让它停止或者反向运动。或者也可以产生音效。GameMaker可以让你定义一些声音。当玩家敲击键盘时,会产生一个键盘事件,物体会执行
4、相应的动作,例如移动。我们希望你可以理解一点,设计每种物体,你要先定义事件,再在事件里加入对应的动作。当你定义好物体之后,你应该开始设计房间了。这样,物体才可以在房间里表演。在游戏里房间可以用来设计关卡或者大地图的不同部分。用动作可以从一个房间移动到另一个房间。房间,首先,要有一个背景。背景可以是纯色的或者是一张图片。这种图片你可以在GameMaker里创建或者从外部调用。(背景可以做很多东西,但暂时只是用于美化房间。)下面,你可以将物体放到房间里了。你可以放入多个同样的物体。因此,例如,你可以只定义一种墙物体就可以在房间里放入很多这种墙。你也可以放入多个同样的怪物物体,这时它们的行为是一样的
5、。现在你可以准备运行你的游戏了。运行时,会先出现第一个房间。物体也会按照设定的动作运动。它们会根据发生的事件来执行相应的动作。下面这些是比较重要的资源:物体:游戏中定义有各种事件动作的实体,它们是游戏的主要表现部分。房间:放置物体让它们活动的地方,可以理解为不同的场景。精灵:用来展示物体的图片,它只是图片,无任何属性行为。声音:用在一个游戏中的背景音乐或者音效。背景:为房间定义背景的图片。事实上还有其它很多的各种类型的资源比如说:路径、脚本、字体、时间轴等。它们在更复杂的游戏中起到了很大的作用。这些只有你在高级模式下运行GameMaker才可以看得到。如果你觉得有很多细节没有看懂,没有关系,在
6、后面的章节中,我们将分门别类的对每一个资源设置项目进行详细的讲解。这里我们只希望可以让你对GM的运行体系有个大致的了解。一个例子首先最好让我们来看看一个简单例子。我们假设你在简单模式下运行GameMaker。第一个步我们先在脑海里大概的勾画一下我们要制作的游戏是什么样子的(你最好先做这一步工作,当你打算开发大型游戏时,你就不是简单的在脑海里勾画了,你必须有你的游戏开发进程表,以及各种有条理的书面规划,这样可以为你在以后的开发中节省很多时间)。我们现在的个例子是很简单的:有一个球在几面墙之间弹跳,玩家可以点击球,每一次点到会得一分。那么首先我们需要两种不同的游戏物体:球和墙。这样我们需要两种精灵
7、图片来表示两种物体。最后,当我们成功点中球时我们会听到一些声音。这个简单的游戏我们只要为它设置一个房间就可以了。不妨让我们自己动手来做做吧,在做的过程种如果你碰到什么地方不会的话可以调出例子来看看。(ball.gm6)好了开始动手吧。首先我们制作好精灵图片,从“添加”菜单菜单里我们选择“添加精灵”,你可以看到一个弹出的窗体,在“名称”选项里我们输入“wall”,选择“读取精灵”按钮并选择一个类似墙的一个小图片,这样我们就得到了一个墙的精灵图片。现在你可以关闭该窗体了。以同样的方法为球(ball)也建立一个精灵图片。下面我们添加声音,从添加菜单里面选择“添加声音”,另一个窗体将会打开,给声音取一
8、个容易识别的名字并选择“读取声音”,载入一个声音资源并试试是否是你想要的效果,如果设置好了就可以将窗体关闭。下一步是创建两个带事件的物体,首先让我们来看看墙物体。再次从添加菜单中选择“添加对象”,将会弹出一个比之前复杂一点的窗体。左边我们看到是物体一些大概的相关信息。我们给物体取一个贴切的名字并且从“精灵”下拉菜单中选择一个正确的精灵图片。因为墙是一个固体所以我们在“固态”选项框打上沟。现在我们来建立一个新物体,给它取名为“ball”,并且给它一个球的精灵图片。因为球是运动的所以我们就不要钩选“固态”选项了,一会我们还要给它设置行为动作。在中间你可以看到一个还没有添加任何事件的空列表栏,在栏下
9、面是一个名为“添加事件”的按钮,单击它会列出所有的事件。选择“建立”事件,你会看到它被添加到了事件列表中。在最右边你可以看到所有可以用的动作命令,它们都已经被分好组了。从“移动”组里面我们选择一个8个红箭头图标的动作拖动到动作栏中,这个动作将让物体朝一个特定的方向运动。当你完成拖动后一个对话框将会显示出来,在里面你可以指定物体运动的方向。选择所有的箭头以便选择一个随机的运动方向。你可以指定速度为8。好了,现在关闭对话框。现在球从开始建立就可以运动的事件已经设置好了。下一步我们将要设置球碰到墙会有什么反应。再次按“添加事件”按钮,在球的事件列表里选择“碰撞”事件,并且在下拉菜单里面选择墙物体(和
10、墙相撞)。在这个事件里面我们将要添加一个“反弹物体”的动作。(在动作按钮上,你只要把鼠标放在上面几秒钟就会弹出动作介绍的帮助气球)最后我们需要定义当用户球物体被鼠标左键单击发生的行为。添加“鼠标”事件并且从下拉菜单中选择“左键”事件。为这个事件我们添加一些新动作:一个用来播放声音,另外一个用来更改分数值,两个动作分别可以在“主要一”组和“分数”组中找到。还有另外两个动作是用来给球一个新的随机位置并且朝一个新的方向运动。用同样的方法添加好。在声音动作里面我们选择好正确的声音。在分数动作里面,我们输入1并且在“相对”选项前点钩,意思是在当前的分数值上加一。最后,加上一个“跳到随机位置”动作和一个8
11、方移动的动作。现在我们的物体就准备好了,我们还要做的是设置房间,或者说场景。为游戏添加一个房间,再次选添加菜单选择“添加房间”,在右边你可以看到空空的房间还没有放置任何物体和背景。左边你可以看到一些标签菜单选项。一个用来设置背景,一个设置房间的大致属性,象长宽之类的,还有一个菜单你可以用来往房间里面添加定义好的物体,在底部你可以从下拉菜单里选择物体。通过点击房间的指定位置你可以将物体放置在房间的指定位置。你可以右击物体来将它删除。用墙物体建立一个美观的方形墙壁,最后把一两个球物体放置在房间的墙壁围好的空间里面。我们的游戏到此已经全部准备完毕。现在是我们将要测试的时候了,单击“运行”按钮,看看会
12、有什么发生。如果在球刚开始运动的设置上没有发生错误,那么你试着点击它看动作是否有误。你可以通过键盘“ESC”键停止游戏。同时你也可以为这个小小的例子做更多的变化,比如你学了粒子效果,你可以为球添加运动的轨迹效果,并且当两球碰撞时产生火星等。恭喜你,你已经用GM制作好了你的第一个游戏。好了接下来,就让我们更深入的到每一个环节去学习吧。精灵图象精灵图像在游戏中是用于表现物体的资源(可以将物体看成灵魂,那精灵图象就是肉体)。一精灵图像可以是一个单独的图像,也可以是一组一个接一个播放的图片集。当你做一个游戏的时候,通常你会收集游戏里所需要的精灵图形素材。你可以在GameMaker的网站上找到一些简单的
13、素材,在网上也有很多。一般格式都是gif的。专业游戏制作组制作游戏时会让美工设计好一套各种角色图形。一般的爱好者可以自己动手,也可以到网络上通过其它途径寻找现有图形资源来制作游戏。你可以通过添加菜单或者工具栏的按钮来添加精灵图象。添加时,会打开一个精灵图象的属性窗体。在上方你可以指定精灵图像的名称.全部精灵图像(和其它全部的资源)都要有一名称。你最好给予每个精灵图像一个描述性的名称。并确定所有资源有不同名称。虽然不需要严格地遵守命名规则,但建议你在精灵图像名称上只使用文字、数字和底线符号(_) 命名(任一其它的资源也一样)并以一英文字开始。特别是不要使用空格符,一旦你开始使用脚本后将会发现按规
14、则命名非常重要。要加载一精灵图像,点选“读取精灵”按钮。将会弹出一个标准的文件打开对话框,你可以指定精灵图像。GameMaker可以加载许多不同格式的图象文件。当你加载一动画gif,不同的帧组成精灵图像(注意被压缩的动画gifs文件不可以被加载)。只要精灵图像被加载,那么第一个子图形会被显示在窗体右边。当精灵图形是动画时,你可以使用工具栏的箭号按钮来更改它们的顺序。“透明”选项指定精灵图像的背景是否要被当成透明来处理。大多精灵图像背景都是透明的。背景色是由图像最左下方的像素颜色来决定。所以要确定图像要显示的部分中没有是透明色的颜色,否则将被透明化而不被显示。可以用“编辑精灵”按钮来处理精灵图像
15、,或甚至创建一完全新的精灵图像。后面章节有详细介绍。声音与音效大部分游戏有特定的声音效果和一些背景音乐,在GameMaker网站中也简单的提供了一些声音文件,你可以在网络上搜集更多音效资源。添加声音资源到你的游戏中,可以在添加菜单中使用“添加声音”命令或在工具栏中使用对应的按键。这时候会弹出一下像下面的属性窗体:在上方你可以更改声音资源的名称。需要加载一声音,单击“读取声音”的按钮,显示一个文件打开对话框,在上面你可以选择声音文件。有两种类型的声音文件,wave文件和midi文件 (关于mp3文件后面有介绍,因为比较特殊):wave文件通常用于短音效。它们使用许多的内存,但是播发很快就结束。可
16、在你的游戏中当作音效使用。midi文件使用较少内存,但是它们被限制在只作为背景音乐,不支持各种音效。而且任何时间只可以有一个midi声音在播放。你可以使用播放按键听声音效果。有一个“保存声音”的按钮用于保存当前的声音。这按钮不是必须的,但某些时候还是有用的。背景第三种基本资源是背景。背景通常是较大的图像,常用于游戏发生的房间中做背景(或前景)。通常背景图像可以用看不出缝隙的元件类图形用来重复排列形成。GameMaker的网站也提供了一些简单背景图象。要添加一背景资源到你的游戏,在增加菜单中使用“添加背景”命令或在工具栏中使用相对应的按钮。这时将会弹出背景的属性窗体:同样你要给背景取一个名称。单
17、击“读取背景”按钮以加载一背景图像。GameMaker支持许多格式的图象文件。要注意背景图像不可以是动画!(透明)复选框指出背景是否为部份透明,大部份背景不透明的所以默认值为否。最左下方像素的颜色被拿来当做透明颜色。你可以使用“编辑背景”按钮来更改背景或创建一个新背景。物体到目前为止你应该可以添加一些漂亮的图片和好听的声音到游戏中了,但它们不能产生任何行为。现在我们来了解GameMaker中最重要的资源:物件。物体是在游戏中实际动作的实体,大多数情况下它们会用精灵图像来展示自己,这样你就你可看见它们。同样它们有行为,它们可以对一定事件作出反应,这就是物体区分于精灵图像的区别,因为它们有事件、有
18、行为。在游戏中你见到的放在场景中的东西都是物体(除了背景之外。更精确地说,它们是物体的实例)。人物、怪物、球、墙壁、等等,全部是物体。也有一些特定物体是你不看到的,因为它没有设置一个用来显示它们的精灵图像,但是它们仍被放在场景中,它们事件在控制游戏某部分的运作。需要了解精灵图像和物体之间的差别。精灵图像只是(动画)图像,而没有任何行为。通常物体有一个精灵图像代表它们的外观,但是物体有行为,没有物体游戏就不发生任何事件产生任何效果,也就没有游戏!还要了解在物体和实例之间的差别,一个物体描述一特定的实体集合。例如:一个怪物。在游戏中一种物体是可以有多重实例的。当我们谈及到一个实例时代表一个物体中一
19、个特定的有一个ID编号的实例,当我们谈到一个物体时代表该物体中全部的实例。也就是说一个物体可以有很多个实例用来代表这个物体来使用,物体是所有实例的总称。物体是一个集合,实例是物体的一个抽象(如果学过面向对象编程会很容易理解,就是类跟对象的关系)。要添加一个物体到你的游戏中,从添加菜单中选择“添加对象”。会出现下面的窗体:这相对来说会复杂一点。左边有关于物体的一般信息。在中间是物体发生的事件表列,在右边是物体对应事件的多种不同的动作。事件和动作将会在后面的章节介绍。同样你需要给物体一个名称。然后你要指出用来显示物体外观的精灵图像。在精灵图像方块中单击鼠标左键,或在靠近它的菜单按按钮单击鼠标左键,
20、将立刻弹出一个菜单,其中包含了所有可用的已经添加的精灵图像。选择一个你想要用来代表物体的精灵图像。如果之前没有添加精灵图象,可以点击“新建”按钮来添加一个精灵图象。这样会比先定义精灵图象在调用快些。在下面有两个复选框,一是“可见”,可见表示在舞台上物体是可看见的。一般大部份游戏在舞台上物体是可见的,但有时无形的物体是相当有用的,例如,你可以使用它们来描述怪物运动情况。隐形的物体同样作出事件反应,且其它的实例也会发生碰撞事件。标示“故态”的复选框指定物体是否是一个静止物体(像墙壁)。和实体物体碰撞与和非实体物体碰撞效果是不相同的。一般固态的都用于描述不运动的物体。这些后面有更多介绍。事件Game
21、Maker使用事件驱动物体产生动作。那就是说,当游戏发生某些事情的时候,物体的实例会得到事件(一种告诉物体发生什么事的信息)。 物体实例可以通过执行动作来响应这些信息。每种物体,你都可以设置事件,并说明该事件发生时,物体实例该做些什么。物体的实例添加事件和此事件对应动作后,会在发生此事件时产生相应的动作。这看起来似乎复杂了点,但事实上很简单。比如事件鼠标左键单击这个事件发生,而在这个事件中添加了播放一个声音的动作,那么当在物体的一个实例上点了鼠标左键后,会播放一个声音文件。你可以使用一个非常简单的拖放方法来指定动作。在物体属性表单的中央,有事件列表,列出物体必须作出反应的事件。最初是空的。你可
22、以增加事件到其中,由单击“添加事件”按钮。将出现一个事件列表的小窗体。在里面,你可选择你想要增加的各种事件。例如,如果是键盘事件,你必须选一个按键。在窗体右边列出了全部的动作,由小图标表示,它们已经分好类。在下一个章节我将描述所有的动作和它们的功能。在事件和动作之间有动作列表,列表包含当前事件的动作。要增加动作到列表,用你的鼠标拖曳它们,从右边拖到列表中就行了,它们将照拖曳顺序排列,并有一简短的描述。对于大多动作,你需要设置一些参数。这些也将会在后面章节有介绍。现在你可以开始增加动作到不同的事件里,用鼠标左键点选要设定的事件来选择,然后在其右方动作列表中拖拉动作到事件对应的动作菜单里(注意删除
23、一个事件时所有的事件里的动作会被全部删除。还有如果事件里动作列表为空,那么这个事件也会自动被清除)。你可以使用拖曳更改列表中动作的顺序。当拖曳时假如你按住键,将会复制这个动作。甚至可以在不同物体中的动作列表之间使用拖曳(将一个动作拖曳到不同物体)。当你在动作列表中的一个动作上点选鼠标右键时,会弹出一个菜单,其中你可以删除动作(也可由使用按键来完成)或复制和粘贴动作。按+键可以选中所有动作。当你将你的鼠标指针放在一动作上方不动,会显示鼠标停留的动作的简介。更多有关动作的信息后面还有介绍。用Delete键可以删除事件以及它所有的动作 。假如你想要指定动作到一不同的事件请单击标示更改的按键,并选择你
24、想要的新事件(新的事件不能是已经被使用过了的)。某些事件名称的旁边有一菜单符号紧邻着它表示在里面为事件的集合,有很多可选事件。当你在菜单上单击鼠标按键,或在事件名称上点鼠标右键,出现菜单让你可以挑选想要更改的事件。下面为几个常用事件介绍: 建立事件:当物体的一个实例被创建(或者说是放到场景上时)触发事件,是物体实例的第一个执行的事件,一般用来为实例设定特定变量以及定义物体开始时的运动或者要发生的动作。破坏事件:当实例在场景中被删除时触发的事件。更精确地说,它发生在实例被摧毁之前的瞬间,所以当事件在执行时,实例还存在!例如你可以让一个魔鬼死亡/消失时发出大叫声(播放一个声音文件),或者使用它来更
25、改游戏分数,或者创建别的物体。计时器事件:每个实例有12个定时时钟,可以精确控制物体在某刻发生某个动作,你可以给时钟设置一定的动作,再给时钟设置一个倒计时步数,然后时钟倒数计时直到步数到0,在那个瞬间时钟事件触发,时钟里的动作执行。要指定动作到一给定的时钟,首先你需要在菜单中选择它。时钟非常有用,你可以使用它们去让特定的行为不断发生。例如一个怪物在每20步更改它运动的方向一次(要实现这中效果你可以在时钟事件里的动作里再设定时钟这样就会反复被激发)。步事件:步事件发生在游戏的每一个步里,因此你可用于放那些需要被连续执行/一直发生的动作。例如,假如一个物体要会跟随别的物体时,你可以在步事件里把这个
26、物体坐标设为要给跟随物体的坐标加减一点请小心使用这个事件,在有步事件的物体中,不要用过多复杂的动作,否则会大大减慢游戏速度。其中有三种不同的步事件。通常你只需用默认的步。你也可以通过弹出菜单选择开始步和停止步事件。开始步事件是在每个步的最起初执行,注意它在发生任何事件之前。正常的步事件是物体实例被放到它们的新位置之前执行。停止步事件是在步的结束时执行,在物体绘制之前。常使用在如按照当前方向来更改精灵图像。碰撞事件:不论何时当两物体实例碰撞(也就是,它们的精灵图像重迭)时,发生碰撞事件。精确地说是两个碰撞事件发生:因为每个实例各设置了一个碰撞事件。实例可以对碰撞作出反应。要设置碰撞,先点碰撞事件
27、菜单,再选择你想要定义碰撞事件的物体,其次你把动作放在动作列表里。实例与一固态物体和一非固态物体碰撞时是有差别的。首先,当在碰撞事件中没有添加动作时,什么也不会发生:当前的实例保持原来的运动,即使被碰撞的物体是故态也如此。当碰撞事件包含了动作时,则出现下面的情形:当被碰撞物体是固态物体,实例先被放回它先前的位置(即在碰撞发生之前的位置),接着执行碰撞事件。最后,实例被放到它的新位置。当被碰撞物体不是固态物体时,原先实例不会被放回,实例仅在它当前的位置上执行事件,并且,碰撞不会检查两次。稍微想一下就明白这是理所当然的。因为物体不是固态物体,我们可在它上面移动。碰撞事件有许多用处,物体实例可以使用
28、它来实现墙壁的反弹。你可以使用它来销毁物体假如它们被子弹击中等等。键盘事件:当游戏者按下键盘上的键时,按键事件就发生了。每个按键,可以设置不同的事件。在菜单中你挑选需要被定义按键事件的按键,然后再添加动作。通常,游戏里只有少数的物体会用到少量的按键。当压住按键不放时,该键所定义的动作会一直循环执行。有两个特别的按键事件,一个称为“没有按键”,当没有按下键时,事件会发生在每步中;第二个称为“任意键” ,当任意键被按下时发生。注意在键盘右方数字小键盘中,要按按键激活数字键盘,数字按键事件才会有作用。鼠标事件:当鼠标光标停在代表精灵图像的实例上时,产生了此物体实例的鼠标事件。按照鼠标的按键情形而定,
29、有,或事件等等。当游戏者一直按着鼠标按键不放时,鼠标按键事件会在每一步中发生。按下事件是当按键被压下时发生,注意只发生一次。释放事件是当压下的按键被放开时发生。注意事件只在鼠标光标移到实例上时才发生。如果你想在任意位置都可以响应鼠标事件,你可以用全局鼠标事件。还有两个特别有用的事件,一个为鼠标移到物体实例上时发生的事件,一个为鼠标移出物体实例时发生的事件。鼠标滚轮的滚动也可产生事件。最后还有些关于游戏手柄的事件。其他:还有一些其它的事件在游戏中也是很有用的。可以在菜单中找到:离开房间: 当实例的位置完全在场景的外面时触发事件。与房间边界碰撞后触发:当实例与场景的边界相交时触发事件。游戏开始:当
30、游戏开始时触发了事件,适用于第一个场景中全部的实例。它在房间开始事件之前发生(后面有介绍)甚至在场景中物体实例的创建事件之前发生。它经常用来定义某些背景音乐和初始化某些变量,或加载某些文件资料/游戏动画等。要注意只能由一个物体定义此事件。游戏结束:当游戏结束时事件发生到全部实例。例如用来在游戏结束时储存特定数据。同样的,只能由一物体定义此事件。房间开始:当房间开始时发生,用于初始化房间中的实例,它发生在创建事件之前。房间结束: 房间结束时发生。生命数为0:GameMaker嵌入了一个生命系统。可用来设置玩家的生命数,有一个动作可设定和更改生命值,当生命值小于或等于0,就发生该事件。它通常用于结
31、束或重新开始游戏。健康值为0:GameMaker也嵌入了一个健康系统。有动作用于设定和更改健康值。当健康值小于或等于0时,该事件发生。这通常用于从新获得生命或重新开始游戏。动画结束:一个动画由许多图像轮流显示而组成,在最后一个显示的图像之后,会又从第一个图像开始,事件正是在那瞬间发生。例如,可以用于更改动画,或删除实例。路径结束:事件发生在当实例沿路径运动并到达路径的终点时,后面对路径有更多的介绍。用户自定义:有八个事件。它们通常不会发生,你可以用代码来调用它们。绘图事件:可见的实例会在每个步骤将把精灵图像绘制在屏幕上。特别注意当你在绘制事件中设定动作后,物体不会被绘制出,取而代之的是执行对应
32、的动作。所以一般用一个不用在舞台上显示出来的物体添加绘制事件。还要注意绘制事件只有在当物体是可见时才可以执行。按下键:类似于按键事件,但是它只发生一次,只在当按键被压下时,且不是连续的。当你想要让一个动作只发生一次时会用到。放开键:发生一次,在当按键被放开时,且不是连续的。清楚GameMaker处理事件的顺序是非常重要的,各种行为发生顺序如下:开始步事件-时钟事件-按键事件,按键压下和按键释放事件-鼠标事件-正常的步事件-(现在全部实例在它们的新位置上)-碰撞事件-结束步骤事件-绘制事件。当相对应的情形发生时,如创建,摧毁,和其它的事件会被执行。动作动作指的是要执行的行为,放置于事件之中。不论
33、何时当事件发生时就会执行设定的动作。GameMaker中有大量可用的动作.清楚它们的功能是很重要的,本章节中我将说明一下简易模式下的全部动作。GameMaker默认动作已经分好六组,当你把鼠标光标固定放在一个动作图标上方,会显示一个提示气球提示它的功能。只要拖曳动作图标到动作表列就可以把一个动作放在一个事件中。你也可以通过拖曳更改动作在表列中的次序。拖曳时按住键可以复制动作(在不同物体属性窗体之间你也可以拖曳和复制动作)。当你添加一个动作,通常会弹出一个属性窗体,你可以为动作填入一定的参数。许多动作都会有二种参数:在窗口上方你可以指定动作要用于哪个实例,默认值是自己本身,意思是动作将会发生于指
34、定的物体实例。在一碰撞事件中,你也可以把动作作用到涉及在碰撞中的被碰撞物体,这样你可以摧毁被碰撞的物体。最后,你可以选择把动作用到指定的物体里全部的实例中,比如这样你就能更改全部的红色球成为蓝色球。第二个参数是标示着“相对”的复选框,意思为当你输入一个数值时,是相对于当前的数值产生变化的。例如,你可以在当前的分数加减值,而不是把分数直接更改成新的数值。你还可以双击已添加的动作图标来更改动作参数。下面是各种动作分类的页面:移动动作第一组的动作是由与物体运动有关的动作集合成。有下列动作:开始朝某个方向移动使用此动作使一实例在特定的方向开始运动。使用箭号按键来指出方向,使用中央按键来停止运动。可以设
35、定物体运动的速度。速度是用每步几个像素来给定,默认值是8,速度最好不要使用负值,你可以规定多种方向,例如样你可以让一怪物开始往左或右方移动。如果选中多个方向,物体会随机选中其中一个方向运动。设定运动的方向和速度第二种方法是使用蓝色箭头来定义一个运动,这样你可以指出一个精确的方向,是一个介于0和360度数之间的角度值,0代表水平向右。方向是逆时针旋转的,如90度为一朝上的方向。假如你想要一任意的方向,你可键入任意方向random (360)(意思为在0-360之间任取一随机数值)。注意“相对”前的复选框,假如你勾选方框,新的运动设定会增加到旧的运动设定上。好比说,假如实例是朝上运动而你增加一点向
36、左的运动,最后新运动将是朝左上方运动。朝指定点移动这是第三种让物体移动的动作,你指定一个位置和运动速度,实例按指定的速度向位置移动(注意物体不会停在指定的位置!只是朝位置方向移动)。例如,你想要子弹朝宇宙飞船的位置运动,你可以设定子弹朝向的位置为:spaceship.x,spaceship.y(后面章节有更多关于变量的使用方法)。假如你勾选“相对”复选框,即是在指定相对于当前实例位置的新位置(速度不可以勾选“相对”!)。设定水平速度一个实例的速度由一水平和一垂直速度组成。你可以用这个动作来更改水平的速度,速度是正值代表往右运动,是负值代表往左运动,垂直的速度将保持不变。使用“相对”来增加水平的
37、速度(或用一负数减少它)。设定垂直的速度同样的,仅更改实例的垂直速度。设定重力用此动作你可以创建物体的重力效果。你指定一方向(角度在0到360度之间)和一个重力加速度值,指定方向的重力速度值会添加在物体实例当前的运动中,通常你设定小的加速度(如0.01),设定方向为竖直向下(270度)。假如你勾选“相对”复选框你将增加重力的速度和方向。注意,与实际生活中不同,你可以设定不为朝下的重力方向。水平反向这动作可以使物体实例运动的水平速度反向。例如当物体碰到竖直的墙的时候用此动作。竖直反向这动作可以使物体实例运动的竖直速度反向。例如用于碰撞水平的墙。设定摩擦力摩擦使实例在运动之时速度缓慢减下来。在每个
38、步骤中数值会与速度相减,直到速度变为0,通常摩擦力值设的比较小(如0.01)。跳到一指定位置使用此动作你只要指定x和y坐标将实例放在一特殊的位置。假如你勾选“相对”复选框,位置是相对于实例的当前位置来放置。跳到开始位置此动作把实例放回刚开始它被创建的位置。跳到一随机位置该动作把实例放置到场景中的一个随机位置,这些位置没有其它故态物体。你可以指定使用网格。如果你指定正数,则被选择的坐标将是指定数值的整数倍,例如,可以被使用让在你的游戏中的实例保持对齐。可以指定水平定位与垂直定位。也就是后面说到的吸附网格。对齐到网格使得你可以把一实例的位置定位到网格上。你可以指定水平和垂直两者的定格数值(就是网格
39、的最小单位的尺寸),对制作智能定位游戏是很有帮助的,比如炸弹人系列。设置房间贯穿用这个动作,你可以使物体在房间里贯穿。例如从左边出去,会从右边出来。其他方向类似。移动到接触位置设定运动方向,直至碰到物体为止。如果物体当前的位置已经有碰撞,那将不会运动。 否则物体会移动直到碰撞发生。 你可以指定一个方向以及一个移动的最大距离。比如说一个物体正在下落你可以指定它在碰撞到另一个实例之前运动的最大距离。 还可以指定这种效应发生是只针对碰撞到固体物体还是全部物体。很典型的你可以把这个动作放在碰撞事件中用来让实例产生朝一个特定位置运动,当在中途中遇到其他物体就停下来的效果。碰到物件反弹当你在碰撞事件放入这
40、个动作,实例会自然的从物体上反弹开。假如你设定“精度”参数为“不精确”,只有水平的和垂直的墙壁才会被正确处理。当你设定“精度”参数为“精确”时,倾斜(甚至弯曲的)墙壁也可得到令人满意的处理结果(但是速度稍慢)。你也可以指定是否是从固态物体,或是从所有物体上反弹。注意弹跳的路径有时不是完全正确的,但在大部分情况下效果是很好的。主要一该组动作与物体实例创建、变化、和清除有关。创建一物体实例创建一物体的实例。可指定创建哪种物体及创建实例的位置,假如你勾选“相对”复选框,则创建位置为相对于当前实例的位置。在游戏中创建实例是相当有用的:如一艘宇宙飞船可以创建子弹、一炸弹可以创建一个爆炸等等。在一些游戏中
41、你还将要一个控制物体来不时地创建怪物或其它的物体。在新的实例被创建时,会执行被创建物体的建立事件。建立移动物体实例与上面的功能类似,但有两点不同。这动作不但可以在某位置创建一个实例并可给予它一个运动方向和速度值,使之开始运动。当勾选了“相对”复选框时,只是位置相对,而不是速度和方向。例如,用这动作创建移动的子弹有个小技巧。在相对于飞机的位置0,0创建子弹。方向就用飞机的方向,直接在方向上输入direction。(这是一个表示当前飞机的移动的方向变量。)随机创建物体实例你可以用这动作创建指定的四种物体中的一种创建实例。你要定义这四种物体和创建位置。这四种物体中的其中一种会创建于该位置上。如果选了
42、“相对”,创建位置会相对于当前位置。如果你想选择少于四个物体,可以用“No object”表示。这可用于在某个位置创建随机敌人。更改实例将当前实例换成别的物体实例。例如,你可以将一炸弹实例更换为一爆炸实例。更改后全部的设定值,如运动或是相关变量的数值,保持相同。你可以指定是否在当前物体上执行清除事件及为新物体执行创建事件(即“完成事件”)。摧毁实例用此动作你可以摧毁实例。自身、其他、或者对象。销毁一个位置上实例用此动作让你摧毁所有进入到某一位置的实例。例如当你使用一个爆炸时相当有用,当你勾选“Relative”复选框则该位置为相对于当前事件发生物体的坐标。更改精灵图像这动作你可以用于更改实例的
43、精灵图像。你指定新的精灵图像,如果是gif动画的图象还可以指定它的桢数。通常都用0(第一张图象)。如果你不想更换当前显示的子桢图象的时候,你也可以用-1。最后,你可以指定精灵图象动画的速度。如果只想看到某一确定的子图,可以将速度设置成0。如果速度比子图象个数大,会循环跳桢显示。不要使用一个负的速度值。更改精灵图象是比较重要的。例如,你常常想按实例走动的方向来设定不同的精灵图像,可为角色在每一方向(一般为四个方向)做一不同精灵图像。在键盘事件内用箭号按键来指定运动的方向和更改精灵图像。变形精灵使用此动作用来更改实例精灵图像的大小和方向。使用缩放值来放大和缩小图象,使用度数值来使图形产生逆时针旋转
44、。例如,如果想按照方向值来旋转,可以在度数输入“direction”。同时可以指定图像水平或者竖直镜象。设置精灵混合使用这个动作你可以改变精灵图形的颜色。你定义的这个颜色和当前精灵图象混合显示,如果你想在游戏中用不同的颜色 来显示一个精灵图象你最好把精灵图形制作为一个黑白的图象并用混合颜色来改变它的颜色。同时你也可以指定精灵图象的显示透明度。数值1为完全不透明,0为完全透明。中间值用来设置部分透明效果。这个动作用来制作爆炸效果时非常好的。播放声音使用这个动作你可以播放一个先前增加到你的游戏中的声音。你可以指定播放声音的方式,播放一次(默认值)或循环播放。多个wave格式的声音是可以同时播放的。
45、如果你使用midi文件那么一个时间内你只能播放一个文件,其它的midi会停止。停止声音停止播放指定的声音,假如多个实例的这种声音都正播放,则全部停止。如果声音播放如果有一个指定的声音正在播放那么执行下一个动作。否则就跳过执行下个动作而执行后面的动作。你可以勾选NOT得到相反的效果。比如你可以用这个动作来测试是否有背景音乐正在播放,没有的话就播放一个新的背景音乐。到先前的房间移到先前的房间,你可以指定在不同房间中的切换效果,假如你在第一个房间中得到一个不好的效果,用试验决定怎么做最好。下一个房间移到下一个房间,你也可以指定切换效果。重新开始当前房间当前房间会重新开始,你可以指定换房间效果。到自定
46、义房间使用动作使得你可以去一个特别的房间,你可以指定房间和切换效果。如果上一个房间存在这个动作测试是否有上一个房间。如果有下一个动作就被执行,你可以使用这个动作测试是否有上一个房间。如果下一个房间存在这个动作测试是否有下一个房间。如果有下一个动作就被执行,你可以使用这个动作测试是否有下一个房间。主要二这套动作用于处理一些定时,显示消息等动作。设定一计时器使用这个动作你可以为物体实例设定12个计时器中的任一个,你要指定步数和计时器编号。在经过指定步数之后,实例将接收到相应的时钟事件,你也可以由勾选“相对”复选框来增减数值。假如你设定步骤的数目到小于或等于0就是关闭时钟,则指定的给计时器的事件就不
47、会发生。暂停使用这个动作使得你可以使场景暂停一段特定时间,通常用在开始或结束一个关卡时,或当你要给玩家某些信息时。你可以指定的数值(以毫秒当单位)来暂停游戏。你也可以指定是否屏幕一开始重绘来显示游戏最后一幕暂停时的场景。显示一消息这动作你可以在一对话框中显示一消息。你可以直接输入要显示的消息。在消息文本中假如你使用#符号则它将会换行(如果你想输出#号,则要用#代替)。若消息文本以引号或双引号符号开始时,则此讯息代表一个表达式。关于表达式,后面有更多介绍(注意当你的游戏在调试模式下执行时,不可以使用消息功能)。显示游戏信息用此动作你可弹出游戏信息窗口,后面有专门章节介绍。重新开始用此动作重新开始
48、游戏。结束游戏用此动作退出游戏。保存游戏用此动作你可以保存当前游戏,你键入文件名来存盘(游戏文件会被存在游戏工作目录中)。之后可以读取。(请注意,只会保存一些基本的状态。例如一些当前播放的音乐,数据结构,粒子等是不会保存的。)载入游戏从文件中载入游戏。你指定文件名。要确认要加载的游戏存档是与当前的游戏用相同版本的GameMaker制作的。不然将发生错误。控制动作有一些动作可以用语控制是否执行某些动作。大多数这些动作都会问一个问题,例如一个位置是否为空。当答案是对的时候(真)则执行下一个动作,否则动作将被跳过不执行。假如你想要执行多种动作(或跳过,视结果而定)则需要由在动作两边放置起始及结束区块(三角形符号那种,在C语言中相当于用来指定区域