幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3795|回复: 5

[原创]Gamemaker入门圣经-连载一

[复制链接]

20

主题

83

帖子

865

积分

⑤进阶

积分
865
QQ
发表于 2006-11-3 17:07:22 | 显示全部楼层 |阅读模式
看到很多会员刚开始接触gamemaker时 不知道如何下手 故打算写这篇连载 为刚学习这个游戏开发工具的朋友能从整体上把握好方向做好第一步准备,看完本章帖子后,或许你会发觉,懂了,原来真的就是这么简单!

首先,在你还不知道gamemaker是个什么样的东西,是做什么的时候,那请你先跳到这个帖子:http://www.mydk.cn/ShowPost.asp?ThreadID=159然后再回过头来看本帖。

gamemaker这个软件官方网站www.gamemaker.nl

而gamemaker中文站www.87n.net/gmaker  论坛地址www.mydk.cn

好,你已经大致知道了gm是个什么东西,用来干什么,那么下面就从一个新手的角度来解释一些机制和原理,懂了这些,那么你已经真正入门了,而后面的工作则只是如何成为一个中级以上的高手,也就是熟悉一些基本的编程语句用法,和脚本函数的功能,还有更深的dll使用方法。

第一章:gamemaker如何运作

1.目录寻源

安装gamemaker后你会发现,它的软件总体大小小的让你吃惊,加起来才不到4-5M(知道什么叫精华了吧),然而就是这些小小的集合让你实现绚丽的游戏效果。我们看这么一些目录,其中background和sprite以及sound里面放的都是一些软件自带的图片资源,格式基本为gif/bmp/jpg,这也是gm支持最多见的格式,gm本身图形编辑功能则支持众多的图片格式。然后example中放的是一些游戏的基本例子,这也是一般学习者最先打开的实例文件,而这些例子都是最简单的,完全由鼠标拖放动作库就能实现效果的例子。再看lib这个目录,放的是.lib为扩展名的文件,也即是动作库文件,我们在物体编辑时看到有很多可以鼠标直接拖放的动作,其实就是保存在这些文件中,而这些lib的文件名称就是一会启动软件后物体编辑动作库中的标签集合名字,所以如果你把其中一个文件命名为运动.lib,如果这个库不是必须的(软件自带的),则一会启动软件后你会发现动作库中多了一个动作标签。接下来dxdata为directx相关数据存储(gm6使用dx8硬件加速),rundata为编译exe文件时需要用到的,是最重要的一个文件,任何修改或者破坏将会导致你的软件不能用。其他的html则为介绍更新以及帮助文档等。



2.制作流程

一般制作游戏的流程(仅为一种参考,每个人的流程可能不同)

外部的操作

策划你的游戏框架()
写你的游戏策划案 构建角色和情节
使用各类图形工具构建你的游戏角色、背景、各类动画、收集或者制作声效
开始gm的操作

打开你的gm软件,分类导入你的角色物品(sprite)图形及动画,背景图形,声音效果并且分别给予不重复的命名
利用gm的内部图形编辑工具对素材进行后期加工,如润色、裁减、旋转、缩放等、gm的图形工具足于应付后期制作
分类整理好,分别放在sprite图形/背景background/sound/声音目录中,如果你需要额外的字体,你可以通过添加的方式加入新的字体。同时,如果你觉得还需要额外的图形和声音等,你也可以随时添加入新的图形或者删除不需要的资源,所有这些操作全部通过鼠标操作完成,甚至将不同资源分类或者改变排列顺序都可以直接用鼠标点击拖放来实现
开始制作物体,(物体是gm中最重要的一个对象,是所有要发生事件和动作的载体,而具有事件和动作的特性也是物体和其他元素如sprite的最大区别,后面会详细深讲几个根本概念),给建立的物体添加各种触发事件(如刚开始时建立时要发生什么,指定一个延迟事件要发生什么,需要绘制什么东西,或者控制其他物体做那些运动,以及何时把自己删除等)
制作所有所需要的物体,并且赋予触发的事件,和每个事件中要发生哪些动作
制作房间(或者说是舞台、场景,也就是所有单位活动的地方,其实就是我们看到的游戏场景,包含了背景,人物,物件等等),设置房间的参数(大小、镜头、镜头跟随物体等,以及房间初始时是否执行一些代码)
制作好房间,整理分类(可以通过建多个子资源目录),并且把相应的物体放在房间中,组合成我们的游戏关卡
制作一些控制大体环境的物体,如控制游戏菜单,天气效果,控制游戏退出等,并制作主菜单及选项场景,并把控制物体放在菜单场景里以便控制游戏总体
整理资源并做测试
除错(debug)
测试完毕 生成exe文件 打包
发布你的游戏(gm制作的游戏可以随意发布 销售等 不需要任何许可)


3. 入门,你必须要知道的

gm的运行机理为事件驱动机制,即每个物体有其自身的事件和事件相对应动作,在满足它事件触发的条件后(比如按键事件则是当你按下一个键时触发),事件触发,激活事件里设置的所有动作(比如赋予物体一个速度,发射一个子弹,设置一个延迟时间等),所有物体的事件既相互独立发生,又可以通过设置变量以及动作让他们联系在一起(比如子弹碰到人后设置一个动作销毁子弹)
编辑物体时可以鼠标拖放的动作,其实是代码事先编写好的集合,只是经过lib编辑工具封装好,编成.lib文件并且把它拷贝到软件安装目录下lib这个文件夹(一定要放在这个目录而不是游戏文件所在的目录),所以你也完全可以自己写一些动作库,以便自己以后使用,且可以直观的拖放。编写需要用到一个lib工具,后面会介绍
gm最基本的机理就是触发事件并且激活事件里面设置的动作,而调用脚本本身也算是一个动作。所以调用脚本的前提是你必须建立一个物体,并且需要一个场景放置物体,然后激活某个事件,这个事件中设置了调用脚本这个动作,不要以为gm是和qbasic语言一样从头到尾一直用代码写下来。代码在gm中可以理解为强化的动作库一个最简单的游戏就是你只做了一个房间(即使它里面没有放任何一个物体),如果没有房间,游戏根本无法编译运行,所以你可能大致的猜到了,其实房间就是一个window窗体,所谓设置房间背景就是给这个window窗体赋予一个背景,要知道没有窗口的window程序是根本无法实现的(至少你无法看到)
4.入门要先理解透的概念

精灵图形sprite,这里不要去追究为什么要叫精灵图形,作者的意思要表达的就是为了和背景这类图形区分开,说明这类图形是用来赋予像角色、物品等这类需要放在房间里的物体的(当然你也可以使用绘制函数来单独在屏幕上绘制一些需要的精灵图形,这个另计)。而精灵图像最大的作用就是用一个图像来代表物体的存在(因为物体本身建立时是没有任何图形的,要等待你去赋予),比如你建立一个宝盒物体,命名为box,那么如果你不导入一个宝盒的图形素材并赋予给这个物体的话,那么你在房间里即使放置了这个物体你也看不到。导入后的精灵图形可以通过gm内置图形工具进行操作,比如缩放改色设置中心原点和碰撞范围等,还有一些高级选项你可以直接读gm高级教程
背景background,最好理解的东西,就是一类用来为房间做背景的图形素材,除此以外,你还可以用来制作tile系列的如麻利奥游戏背景的那类tile图形,以及使用绘制函数来砸在屏幕上独立绘制一个图形等。注意既然是背景,那么当你为房间指定一个背景时,它永远在最后的层次显示。
物体,gm中最重要的元素,支撑着所有情节的触发。你需要为物体指定事件并且在事件中指定要执行的动作(即事件触发要做什么),如果你不指定事件,那么这个物体放在房间中什么也不作,只是放在那里。可以赋予给物体的事件又很多,要执行的动作也很多,具体参考gm教程,论坛有。这里需要注意的是初学者最大的问题是搞不清楚对于同一个物体,物体本身(object)和这个物体的实例(instance)的区别,可以这样理解,物体是一个大类(抽象),而实例是这个物体类的具体到某一个有编号的实在物体,是物体这个大类的拷贝体,具有所有这个完全一样物体的属性(精灵图形,事件,动作等),物体一般只要做一个就够了,但是你可以在房间里放置无数个这个物体的实例,这些实例都执行着这个物体所设置的事件和动作。比如你制作好了一个椅子物体,并且设置在建立事件中开始向右移动,然后你制作一个房间,这个房间里面要20把这样的椅子,那么你直接选择椅子物体并且在房间中单击20此建立20把,这时这20把椅子就是这个椅子物体的实例,而且每个椅子都有一个内在默认的数字id编号,以便你随时可以指定某一把椅子来发生某些动作,如删除等。而且当你运行游戏的时候,所有的椅子实例都会向右移动,说明这些实例继承了椅子物体的事件和动作。
代码集合(code)和脚本(script)是不完全相同的,代码集合是编写好的代码放在一起(只是单纯写在在一起),脚本也完全可以实现这个功能,除此以外,脚本还可以使用参数(学过编程的都知道function函数这个功能,脚本就具备这个功能),然后可以通过递参数来实现函数的功能,设计好脚本之后,你可以把脚本命名好,以后可以把它当内部函数来使用
待续...
回复

使用道具 举报

3

主题

42

帖子

24

积分

版主

Rank: 7Rank: 7Rank: 7

积分
24
发表于 2006-11-4 09:41:33 | 显示全部楼层
支持+关注!!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

24

积分

②入门

积分
24
发表于 2006-11-4 12:19:47 | 显示全部楼层
啧啧,狂兄好效率啊~帮你顶下~
PS:欢迎喜欢GM的朋友到GM本部来~
回复 支持 反对

使用道具 举报

好人卡的 该用户已被删除
发表于 2006-11-4 14:37:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

16

主题

73

帖子

18万

积分

⑧专业

积分
186691
QQ
发表于 2006-11-4 16:03:40 | 显示全部楼层
............GameMaker是什么东西。。。。。那个网页打不开啊
《Dead of Night》策劃中。。。
回复 支持 反对

使用道具 举报

7

主题

79

帖子

961

积分

⑤进阶

积分
961
QQ
发表于 2006-12-22 20:23:24 | 显示全部楼层
谢谢谢谢谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!
csboy.0055.cn  我办的CS网站 呵呵!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-3-29 07:22 , Processed in 0.025066 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表