RPG_Basic(3):VARIABLES AND CHARACTER SPRITES(变量和人物精灵)
本系列是油管上的HeartBeast的[Beginner] Make an RPG课程的中文笔记,主要形式是截图的方式进行步骤上的说明。面向对象:GameMaker新手,以学习一门脚本编程语言,制作一个RPG游戏为目标的爱好者。
基本概念
- instance variable 实例变量
- local variable 局部变量
- depth深度
在Create事件创建变量并在Step事件中使用
双击资源树上的obj_player对象,点击event,点击Create,在Create事件中的代码,添加实例变量spd,
注:GameMaker Studio 2 对大小写是敏感的,spd和SPD不是同一个变量
将原来的Step事件中的"4"替换成变量"spd",来代表角色移动的速度
尽量使用变量来控制参数,这样方便修改,如果想要改变角色移动的速度,只要在create事件中修改spd的数值即可,而不是挨个修改step事件中的数值。
使用局部变量来代替复杂的表达式
创建4个local variable(局部变量)来代表复杂的表达式,这样有助于保持代码的可读性。
注:索引按键A可以使用单引号,但在GMS2版本中,必须使用双引号来进行标识。
导入外部图片作为精灵子图像
创建的精灵,双击呼出编辑面板,点击EditImage
在弹出的界面,点击最上方的彩蛋的EDIT,选中需要导入的外部图片文件
然后设置参数即可
依次创建以下几个精灵并导入外部图片(外部图片资源在此下载,若链接失败,请科学上网,或者留言索要)
- spr_player_left
- spr_player_right
- spr_player_up
- spr_player_down
都是14*21大小,总帧数为6。
设置各个精灵的中心为middle centre
设置obj_player的碰撞盒至合适的位置
去除自动补齐颜色
点击游戏上方的按钮的设置按钮,将windows里面图像设置的红框条目,设置为空,这将禁止GMS引擎在游戏运行时,自动补齐精灵图片的动画,从而避免图像模糊。
手动设置精灵运行速度
在obj_player的create事件,令image_speed = 0;
这意味着obj_player的不会自动播放精灵动画,如果不设置为0,该精灵的动画将以精灵的参数speed为动画播放速度。
当你运行游戏,角色就会不停的循环的播放动画,就比如下图,角色没移动,但也在原地播放一个原地跑步的动画。
理解深度的概念
在obj_player还有一个参数,叫做depth,你可以简单理解成画面中的人离屏幕的距离,离得越远数字就越大。
负数离屏幕近,整数离屏幕远,当然这只是一个比喻的说法,正确的来说应该是渲染上的术语,你可以查看帮助文档帮助了解,或者查看青铜的幻想的GMS中文教程,这一点说的很清晰。
注:和GMS1不同,GMS2取消了直接在对象创建时设置depth,而是在脚本使用instance_create_depth()要求必须输入深度,如果你想要在不同的深度创建同一个对象,那么就不必像GMS1一样,创建两个对象啦。
运行游戏发现,在角色移动时,角色是“静止”,所静止其实是指obj_player没有精灵动画,它的精灵子图像永远固定不变。
如果想要在角色移动时,根据他移动的方向,播放不同的动画就需要改变obj_player的精灵子图像索引和动画速度了。
在if事件中添加索引更改,设置动画播放速度为0.2;
在step事件监测按键输入,每帧都会更新按键的情况,从而会导致其中某一个KEY被按下后,松开后,精灵子图像不会复原,就是在最后添加一个复原精灵子图像的代码,注意当设置image_speed = 0,精灵子图像索引会自动回到第一帧。