GameMakerACT游戏速成日记

上传人:c****e 文档编号:145016709 上传时间:2020-09-15 格式:DOCX 页数:19 大小:392.55KB
返回 下载 相关 举报
GameMakerACT游戏速成日记_第1页
第1页 / 共19页
GameMakerACT游戏速成日记_第2页
第2页 / 共19页
GameMakerACT游戏速成日记_第3页
第3页 / 共19页
GameMakerACT游戏速成日记_第4页
第4页 / 共19页
GameMakerACT游戏速成日记_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《GameMakerACT游戏速成日记》由会员分享,可在线阅读,更多相关《GameMakerACT游戏速成日记(19页珍藏版)》请在金锄头文库上搜索。

1、ACT 游戏速成日记(一)刺激的 RTS,华丽的 STG,唯美的 AVG.一个个游戏让大家沉溺其中,不过有没有想过自己制作一个“心目中最好的”游戏呢,今天开始,我们 将逐步揭开游戏制作神秘的面纱,来制作一个有流畅感的 ACT 游戏游戏吧!(此教程包含的过程,大部分使用的 GML 语言,建议有恒心的朋友看下去) 一、准备工作: 对于冗长的理论知识,我们这里就不介绍啦,不过呢,建议大家在制作游戏之前,一定要制作一个基础蓝本或者大纲,这里,我们需要在大纲里 记录的有以下内容,因为我们这次制作的,不是什么大游戏,所以需要记录的也就是很少: 1.人物设定 2.人物属性设定 3.其他 这些是游戏做涉及的基

2、本记录,当然如果一个大型游戏,还有其他的东西,比如物品,场景等。 二、录入精灵: 任何一个游戏,在你录入精灵的时候,最好利用同意规范的名称来进行命名,否则,之后将可能造成很大的混乱,这次我们先录入的就是玩家的 造型啦。这里我们精灵包括了 10 个动作,图片里只录入了 8 个,开始动作、站立、移动、攻击、跳跃、跳跃攻击、(特殊技能)、(后闪)、死亡. 这些精灵在录入完毕以后,我们将面临第一个问题,就是精灵的偏移值统一; 如果你的素材效果很好的话,可以省略掉单个精灵里多帧动画的对 齐裁剪工作哦。偏移值,即焦点,我们有个很简单的比喻:如果在游戏里,一个对象拥有 2 个动作,如移动的时候攻击对方,偏移

3、值位置不统一的话 ,就会造成攻击和移动的 2 个动画播放位置完全不一样,所以,我们要尽可能做到偏移值一致。在录入这个玩家的精灵以后,依然以上方法,我们就录入怪的精灵,当然怪我们不止一种,所以怪的名称,应该更需要讲究统一哦,如零号怪物,所有的动作名称,就取为“spr_动作_0”,具体作用我们以后会用到,今天呢,并不会用到,到时候再具体解释。三、录入背景 在选取背景的时候,大家可以选择自己喜欢的背景,同时推荐注意的 2 点呢, 就是,首先,为了让游戏画面看起来很假融洽,我们用到的背景, 最好与精灵素材的画风相近;其次,为了让游戏画面更加的有层次感,我们可以录入 23 张以上的背景在同一个房间里。

4、在同一个房间里,background 层次越高的,就越靠前,也就是说 background 7就是在最前,所以我们也可以弄出一些特殊效果,如前景的树木 ,大雾等。接下来我们想让一个前景不挡住背后的风景,应该怎么做呢,当然,需要前景的除了景物部分,其余的全部透明,在 Gamemaker 中,需要 一帧图像透明的话,只需要让透明的像素颜色等于左下角的像素颜色,就可以做到透明啦。更高级的 Alpha 通道透明等,由于作用问题,这里不使用 ,就不做说明啦。5 楼四、第一个对象 无论如何,在于自己设定的参数接入之前,我们也需要先对整个游戏环境,进行一个简单的测试,所以呢,优先创造的第一个对象,则就是玩家

5、本身咯。如图,我们首先创建一个对象,名称为 obj_player,然后再在对象里,设置是个event,分别是 create,alarm0,step 以及 draw,当然或许以后会增加,但是我们现在需要的,也仅仅是这些。create,这里面包含的东西,主要是给对象在创建的同时赋予一些基本参数,所以像玩家的 hp 啦攻击力啦之类的,我们都在这里进行设置,为了偷懒,我将他做成一个脚本 user_init()。user_init()内容hp = 5000 /hp maxhp = hpcomic_counter = 0 /动画换页 comic_counter alarm0 = 5 /动画速度alpha

6、= 1 /透明度scale = 1 /动画方向event = 0 /是否发生时间hurt = 0 /硬值my_locate = y / 自身初始位置接下来在 create 里,还拥有一条内容,则是 user_wordset(),这个函数的作用, 主要是将动作简化,不过呢,在仅仅只有一个对象的时候,并不能显示出他的具体作用,所以,我们这里仅仅先将他写入,在录入敌人对象的时候,我们在具体解释慢慢体会。user_wordset()内容/玩家调用的数据execute_string(p_s = spr_stay_p) /简化变量参数站立execute_string(p_g = spr_move_p) /

7、简化变量参数移动execute_string(p_a = spr_atk_p) /简化变量参数攻击动作execute_string(p_r = spr_start_p) /简化变量参数开始动作execute_string(p_d = spr_dead_p) /简化变量参数失败动作execute_string(p_t = spr_jmak_p) /简化变量参数跳跃攻击动作execute_string(p_j = spr_jump_p) /简化变量参数跳跃动作接下来是 alarm0,alarm0的作用是什么呢,在这里,alarm0的作用,仅仅是对动画的换帧起作用哦,但是有的人会提出,这个东西完全没

8、有必要嘛!是的, 如果我们使用 image_speed 就可以对对象的 sprite 来进行动画速度判断,但是, 为了能达到更多的特殊效果,我们利用 draw 来绘制动画,并且把动画帧数的速度,掌握在自己手里,那是很方便的喔。alarm0的内容comic_counter += 1alarm0 = 7再接着,就是 step 里的内容啦,step 代表什么意思相信大家都应该明白,那么我们需要在这里面判断的最重要的是什么呢,很明显,那就是控制对象的移动, 所以 step 里的内容是 if hp 0 or event = 0 or hurt = 0 user_operation() ,这句话的意思是如

9、果没有时间发生或者 hp 大于 0 或者没有在硬值的时候,继续让玩家控制。同时,在这句话里,也使用了一个脚本函数,就是 user_operation(),这个也是一个偷懒的函数,所有的控制内容,就在这里面咯,让我们来看看吧。user_operation() 的内容。if keyboard_check ( vk_nokey ) & event = 0 sprite_index = p_s ; vspeed = 0 ; hsp eed = 0 /没有按键则站立if event = 1 vspeed +=.4 /跳跃重力判断,不断增加中.if y my_locate & event = 1 vspe

10、ed=0 ; y = my_locate ; event = 0 /跳跃结束if keyboard_check ( vk_right )if event = 0 sprite_index = p_g /右走scale = 1hspeed = 2if keyboard_check ( vk_left )if event = 0 sprite_index = p_g /左走scale = -1hspeed = -2if keyboard_check ( vk_space ) & event = 0event = 1 /跳跃事件sprite_index = p_j /跳跃vspeed = -10if

11、 keyboard_check_pressed ( vk_control )instance_create ( x , y , skl_1 ) /攻击动作 1最后,在 draw 里,我们做的工作就是绘制这个对象。具体解释已经没有必要了,所有的参数在 user_init()的内容里,已经有详细解释了哦。draw_sprite_ext ( sprite_index , comic_counter , x , y , 1 * scale , 1 , 0 , c_white , alph a )五、场景房间 在准备好对象以后,我们就可以开始测试房间啦在 settings 里设定好房间的名称以后,将房间

12、宽和高设定为 640x4080,speed 为 60。 首先,依次在房间里设置好背景 6 和 7 7 为前景,6 为后景,如图。然后,再选择房间里的 View,首先 Enable the use of views,让 View0 为房间开始时可见(visible when room starts),我用的素材宽度不够,为了让游戏更有卷动感,我们吧 view in room,设置为 w 400, h 300,如图.最后,我们在 objects 里,把主角放进房间里。六、结束语一章,在这里就结束啦,让我们运行一下游戏,将会看见主角可以再屏幕上自由的移动咯。下一章我们将设定主角的攻击,敌人的 ai

13、以及其他细节,那么下次再见啦!ACT 游戏速成日记(二)一、一些设定的作用 在此之前,由于我们的程序需要,比如用上了更多的参数,我们就之前的程序进行了一些改动,首先进行改动的就是 user_init()啦,以下则是改动的内容。 hp = 5000 /hp maxhp = hp comic_counter = 0 /动画换页 comic_counter alarm0 = 5 /动画速度alpha = 1 /透明度image_xscale = 1 /动画方向event = 0 /是否发生时间hurt = 0 /硬值开关 hard = 0 /硬值hard_speed = 0 /硬值速度 my_loc

14、ate = y / 自身初始位置sprite_index = p_r event = 3 /初始动作 start_number = sprite_get_number ( sprite_index ) my_dam = 0 /被造成的伤害 在这里,出现的一些特定变量,我们简单做一下解释 第一个:event 判断事件的发生,变量等于特定的数值以后,将会生成或者产生的新事件。 第二个:hard 由于被敌人攻击,总有一个间隔时间,如短暂无敌,受伤特效等,那么,hard 起的作用就在于此。 第三个:hard_speed 则是被敌人攻击的时候,击退的速度。 第四个:my_locate 起的作用则有很多,

15、比如在横板游戏里,为了保持敌人与玩家的坐标一致,则需要一个衡量标准。 第五个:my_dam 显示伤害的作用。 再此变化之后,玩家的判定将会更多,所以对于 user_operation()也会有相应变化咯: if event != 4 /只要主角没死 if x 640 x = 640 /坐标限定 if keyboard_check ( vk_nokey ) & event = 0 sprite_index = p_s ; v speed = 0 ; hspeed = 0 /没有按键则站立 if event = 1 vspeed +=.4 /跳跃重力判断,不断增加中. if y my_locate & event = 1 vspeed=0 ; y =

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 小学考试

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号