GameMakerACT游戏速成日记

上传人:枫** 文档编号:550262884 上传时间:2023-08-05 格式:DOC 页数:19 大小:483.50KB
返回 下载 相关 举报
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个动作,如移动的时候攻击对方,偏移值位置不统一的话,就会造成攻击和移动的2个动画播放位置完

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

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

5、别是create,alarm0,step以及draw,当然或许以后会增加,但是我们现在需要的,也仅仅是这些。create,这里面包含的东西,主要是给对象在创建的同时赋予一些基本参数,所以像玩家的hp啦攻击力啦之类的,我们都在这里进行设置,为了偷懒,我将他做成一个脚本user_init()。user_init()内容hp=5000/hpmaxhp=hpcomic_counter=0/动画换页comic_counteralarm0=5/动画速度alpha=1/透明度scale=1/动画方向event=0/是否发生时间hurt=0/硬值my_locate=y/自身初始位置接下来在create里,还拥

6、有一条内容,则是user_wordset(),这个函数的作用,主要是将动作简化,不过呢,在仅仅只有一个对象的时候,并不能显示出他的具体作用,所以,我们这里仅仅先将他写入,在录入敌人对象的时候,我们在具体解释慢慢体会。user_wordset()内容/玩家调用的数据execute_string(p_s=spr_stay_p)/简化变量参数站立execute_string(p_g=spr_move_p)/简化变量参数移动execute_string(p_a=spr_atk_p)/简化变量参数攻击动作execute_string(p_r=spr_start_p)/简化变量参数开始动作execute_

7、string(p_d=spr_dead_p)/简化变量参数失败动作execute_string(p_t=spr_jmak_p)/简化变量参数跳跃攻击动作execute_string(p_j=spr_jump_p)/简化变量参数跳跃动作接下来是alarm0,alarm0的作用是什么呢,在这里,alarm0的作用,仅仅是对动画的换帧起作用哦,但是有的人会提出,这个东西完全没有必要嘛!是的,如果我们使用image_speed就可以对对象的sprite来进行动画速度判断,但是,为了能达到更多的特殊效果,我们利用draw来绘制动画,并且把动画帧数的速度,掌握在自己手里,那是很方便的喔。alarm0的内容

8、comic_counter+=1alarm0=7再接着,就是step里的内容啦,step代表什么意思相信大家都应该明白,那么我们需要在这里面判断的最重要的是什么呢,很明显,那就是控制对象的移动,所以step里的内容是ifhp0orevent=0orhurt=0user_operation(),这句话的意思是如果没有时间发生或者hp大于0或者没有在硬值的时候,继续让玩家控制。同时,在这句话里,也使用了一个脚本函数,就是user_operation(),这个也是一个偷懒的函数,所有的控制内容,就在这里面咯,让我们来看看吧。user_operation()的内容。ifkeyboard_check(v

9、k_nokey)&event=0sprite_index=p_s;vspeed=0;hspeed=0/没有按键则站立ifevent=1vspeed+=.4/跳跃重力判断,不断增加中.ifymy_locate&event=1vspeed=0;y=my_locate;event=0/跳跃结束ifkeyboard_check(vk_right)ifevent=0sprite_index=p_g/右走scale=1hspeed=2ifkeyboard_check(vk_left)ifevent=0sprite_index=p_g/左走scale=-1hspeed=-2ifkeyboard_check(

10、vk_space)&event=0event=1/跳跃事件sprite_index=p_j/跳跃vspeed=-10ifkeyboard_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,alpha)五、场景房间在准备好对象以后,我们就可以开始测试房间啦在sett

11、ings里设定好房间的名称以后,将房间宽和高设定为640x4080,speed为60。首先,依次在房间里设置好背景6和77为前景,6为后景,如图。然后,再选择房间里的View,首先Enabletheuseofviews,让View0为房间开始时可见(visiblewhenroomstarts),我用的素材宽度不够,为了让游戏更有卷动感,我们吧viewinroom,设置为w400,h300,如图.最后,我们在objects里,把主角放进房间里。六、结束语一章,在这里就结束啦,让我们运行一下游戏,将会看见主角可以再屏幕上自由的移动咯。下一章我们将设定主角的攻击,敌人的ai以及其他细节,那么下次再见

12、啦!ACT游戏速成日记(二)一、一些设定的作用在此之前,由于我们的程序需要,比如用上了更多的参数,我们就之前的程序进行了一些改动,首先进行改动的就是user_init()啦,以下则是改动的内容。hp=5000/hpmaxhp=hpcomic_counter=0/动画换页comic_counteralarm0=5/动画速度alpha=1/透明度image_xscale=1/动画方向event=0/是否发生时间hurt=0/硬值开关hard=0/硬值hard_speed=0/硬值速度my_locate=y/自身初始位置sprite_index=p_revent=3/初始动作start_number

13、=sprite_get_number(sprite_index)my_dam=0/被造成的伤害在这里,出现的一些特定变量,我们简单做一下解释第一个:event判断事件的发生,变量等于特定的数值以后,将会生成或者产生的新事件。第二个:hard由于被敌人攻击,总有一个间隔时间,如短暂无敌,受伤特效等,那么,hard起的作用就在于此。第三个:hard_speed则是被敌人攻击的时候,击退的速度。第四个:my_locate起的作用则有很多,比如在横板游戏里,为了保持敌人与玩家的坐标一致,则需要一个衡量标准。第五个:my_dam显示伤害的作用。再此变化之后,玩家的判定将会更多,所以对于user_operation()也会有相应变化咯:ifevent!=4/只要主角没死ifx640x=640/坐标限定ifkeyboard_check(vk_nokey)&event=0sprite_index=p_s;vspeed=0;hspeed=0/没有按键则站立ifevent=1vspeed+=.4/跳跃重力判断,不断增加中.ifymy_locate&event=1vspeed=0;y=my_locate;event=0/跳跃结束ifkeyboard_check(vk_right

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

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