[ 分享 ]12.Better Character Sprite Control(角色精灵控制优化)
我们本系列是油管上的HeartBeast的[Beginner] Make an RPG课程的中文笔记,主要形式是截图的方式进行步骤上的说明。面向对象:GameMaker新手,以学习一门脚本编程语言,制作一个RPG游戏为目标的爱好者。
本节的主要内容为:
- 修复当朝向上,在向左冲锋时,精灵的图片不会发生变化的问题。
- 修正人物停下总是调用朝右精灵的错误
创建朝向
为了修正人物的朝向问题,当你朝向上,在向左冲锋时,精灵的图片不会发生变化,仍然会是向上的。
在obj_player中创建face变量,来储存人物的朝向,根据face的值来设置人物的精灵。
创建宏常量
创建宏常量的语法格式为 #macro 宏常量名称 宏的值
简单来说,宏常量可以理解为一个全局变量。
在object_player的create事件,创建宏常量并初始化。
创建新脚本scr_get_face()
注意round函数的一个小细节,它不是简单的四舍五入,而是约成离自己最近的一个偶数。
我们会用这个脚本和对象实例的dir变量来判断对象实例的朝向。
添加根据朝向改变obj_player精灵的代码
先将原有的根据速度进行对象精灵索引修改的代码注释
然后添加switch语句,在scr_move_state脚本中,使用人物对象实例的face变量的值来设置人物精灵
这样不论人物朝向是上下左右,它的精灵都会一一对应了。
修正人物停下总是朝右的错误
因为dir变量是根据xaxis和yaxis来获得的,所以在人物没有移动时。
再次根据dir去获取face,必然是因为dir = 0。
然后得到的face总是RIGHT,所以这里将scr_get_face脚本的调用放到只有xaxis或yaxis都不等于0的代码中去。
这样当没有按键按下时,人物的朝向就不会重置为0(右边),而是保持停下来的朝向了。
然后后续的根据face来改动obj_player的动画的代码不用改动。
但是至此,冲锋时,根据dir来冲锋的错误仍未被修复。
没有明白这一节到底要修复什么问题,我试了好久都没看懂朝向上,向左冲锋有什么问题T_T。