GameMaker学习如何快速打造RPG!
学习如何快速打造RPG!
在任何游戏中都需要载入sprites(精灵)先。载入一个面向四个主要方向(下,上,左,右)的角色,将他们命名为sprPlayerLeft,
sprPlayerRight,等等。创建一个新的object(对象)并命名为objPlayer,同时将向下的sprites(精灵)附给这个object(对象)。
添加create事件,加入CODE(代码):
image_speed = 0.4//切换图片的速度,数值为1时,每一步step切换一张图。
添加step事件,加入CODE:
(keyboard_check(vk_down)) == true //判断键盘输入是否为下,是的话执行,否则无视
sprite_index = sprPlayerDown //使当前精灵为sprPlayerDown(脸朝下)
direction = 270 //使方向指向下方
speed = 4 //使当前速度为4,
pixels per step单位是像素帧&
if (keyboard_check(vk_up)) == true {&
sprite_index = sprPlayerUp direction = 90 speed = 4 }//同上
if (keyboard_check(vk_left)) == true { sprite_index = sprPlayerLeft
direction = 180 speed = 4 }//同上&
if (keyboard_check(vk_right)) == true { sprite_index =
sprPlayerRight direction = 360 speed = 4 }//同上
if (keyboard_check(vk_nokey)) == true //判断是否没有按键操作,是的话执行,否则无视 {
image_index = 0 //使当前帧为0,即初始图 speed = 0
//使当前速度为0,即停止运动&
这时你可能会奇怪这个教程有一些代码只影响animations(动画)。刚才的引擎正是为这些动画建立的,如果缺少其中一个动画的话也不会报错。
回到主题。新建一个room(房间)。将角色放入其中。随便什么地方。运行游戏。四周转转。你会发现角色可以四方向行走了。切回GM。保存游戏。
添加一个sound(音乐)。命名为sndBackgroundMusic。给你的游戏添加些好听的游戏音乐吧。点击OK。再次打开刚才的角色对象。
在create事件中添加一行新的代码这次的代码是: CODE&
sound_loop(sndBackgroundMusic)
//循环播放sndBackgroundMusic音乐
&不要改动先前的那行代码!运行游戏。游戏开始时可能会非常慢但至少你的游戏有音乐了!(汗...)四处走走享受下现在的游戏。回到GM并打开room。将background
colour(背景色)设成green(绿色)。将room
size(房间大小)扩大到。添加view(视点)。在底部将object
following(跟随视点移动)附给objPlayer(刚才的角色)。新建一个sprite(精灵)。给它添加些图片。为这个sprite(精灵)新建一个object(对象)并放入room(房间)的任意位置。保存游戏。运行它。移到屏幕的边缘。视点移动完成!
第一部分结束。
&喜欢这篇教程?!第二部分我会写一个星期或更久以后。
第二部分:添加一个新的sprite(精灵)。命名为sprTree。画棵树进去。打开我们第一部分最后做的那个object(对象)。重名名为objTree。(耍我...早说嘛)将那棵树的sprite(精灵)附给它。删除原先附的sprite(精灵)。打开room(房间)。放几棵树进去。关闭room(房间)。添加一个新的backgrounds(背景层)。命名为tilPath
Resize(调整大小)图片为32x32。将它灰色填充。关闭background(背景层)。再次打开room(房间)。切换到Tiles(贴片)栏。选择贴片tilPath。贴片大小类型为32x32。用贴片在room(房间)里铺出一条小道。贴片始终在object(对象)的下面所以你可以在同一位置放置Tiles(贴片)和object(对象)。保存游戏并运行。是不是好一些?好多了。退出游戏。新建一个sprite(精灵)。命名为sprNPC。新建一个object(对象)。命名为objNPC。把solid(固体)选项勾上。打开objPlayer角色object(对象)。添加一个和objNPC的碰撞事件。加入:
//停止角色行动
if (keyboard_check(vk_space)) = true then //判断键盘输入是否为空格,是的话执行,否则无视
if (distance_to_object(objNPC)) & 50 then
//判断角色与NPC之间的距离是否小于50像素,是的话执行,否则无视 {&
show_message("NPC: 你是个伟大的游戏制作家!") //显示拍马屁的话 } }
打开room(房间)。将NPC放入任意位置。关闭room(房间)。保存游戏并运行。移到NPC面前按下space空格键。 Da
da! "你是个伟大的游戏制作家!"。现在你所需要的:漂亮的图片一个复杂的地图一些hard-to-beat(难以击败)的AI
一个抢眼的开始界面 这些都没有的我可以给你些找找看: TheRabidWombat's Zelda Text
Engine(类似塞尔达传说的范例游戏)(GM老家里可以找到) The Graphics
Forum(http://forums.gamemaker.nl/)(GM老家论坛的素材区) 未完待续...
第三部分:策划
游戏需要一个好的策划和故事情节。一个好的RPG需要这些基础部分: 1.好的角色名字 2.强悍的BOSS 3.良好的规划
4.一些能吸引你注意的东东第四条最难实现。
在Zelda(塞尔达传说)中剑斗吸引了我的注意。
在Pokemon(口袋妖怪)中小精灵吸引了我的注意。
在GoldenSun(黄金太阳)里,是的,故事情节最吸引我。
这儿有一个故事情节的范例:
引用在地球的边缘有一座神秘的实验室。那儿的一次实验性爆炸导致一些怪异的混合体动物逃脱,由此引发了一场全世界的大浩劫。
这个故事情节中哪些东东吸引你?野生野兽?实验室?不管是什么吸引你,你都会想玩下去。你的游戏最好不要太暴力,太不符合现实或是太庸长。如果你真的那样做的话,玩家会感到厌烦接着就不玩了。当你对你的故事情节感到满意时我们就可以接着到下一块教学部分。既然这些基本元素都架构好了,让我们赋予游戏生命吧。
新建一个background(背景)。命名为bgGameOver。使它全黑,试着加入白字----Game
Over。新建room(房间)。命名为rmGameOver。更改room(房间)的背景为bgGameOver。好的游戏结束界面?(真难看...)把background(背景)和room(房间)都关了吧。新建一个sprite(精灵)。画个小的红心。命名为sprHeart。新建对象。
添加Draw(画图)事件。切换到score(分数)面板。选择三颗心的那个(draw the live as
image),将它改为sprHeart。位置设为0,0。打开角色对象的create(创建)事件。添加一行代码:
image_speed = 0.4
//使切换图速度为0.4&
lives = 4 //初始化生命为4
打开step事件。添加代码:
if lives &
maxlives then //判断生命是否大于最大生命值,是的执行,不是就无视 lives = maxlives
//使生命为最大生命值&
if (lives == 0) //判断生命是否等于0,是的执行,不是就无视&
room_goto(rmGameOver) //角色跳到rmGameOver场景保存游戏。
打开NPC对象的碰撞事件。将代码改为:&
speed = 0 //角色停止运动
if (keyboard_check(vk_space)) = true then //判断空格是否按下,是的执行,不是就无视
show_message("NPC: DIE!") //显示“你丫死了!”
lives -= 1 //生命-1&
&保存游戏并运行。不错哈,俄?角落里有四颗心。走到NPC旁和他说话。
NPC会叫喊"DIE!"接着你就会减一格血。有进一步了,不是吗? 第四部分会介绍武器和一个简单的存货系统(Oh,NO这是我第一次尝试)
draw函数:
draw_sprite(sprite_index,image_single,x,y);
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。