RPG_Basic(28):优化精灵控制
Linpean
2017-10-22
Youtube视频地址:HeartBeast
首先添加两个宏变量(Macros)
在obj_ player的create事件中:其中facing变量已有,所以需要再创建一个Movement来标识角色 状态
创建一个二维数组变量[dirction, state],基于方向和状态来存储角色的精灵信息。
来分别设置move状态下的精灵显示和attack状态下的精灵显示。
在obj_player的step事件中,使用刚才创建的二维数组变量来更新精灵索引
在scr_move_state脚本的第一行 ,令movement = MOVE,更新行动状态
值得一提的是如果是八方向的移动,在Macros的宏变量中,就需要添加 八个方向的定义,并在scr_get_face脚本中,dir应该除以45.变量face=8.
但这里只使用4个方向移动。以上就是movement和face(调用scr_get_face脚本)变量更新和赋值
由于我们已经使用二维数组变量来更新精灵索引了,所以可以移除在scr_move_state后面的更新精灵索引switch语句
运行游戏,可以看到效果,角色移动时,精灵会发生变化。
与更新movement为MOVE类似,在scr_attack_state的首行,更新movement = ATTACK;并且移除switch语句。
对应修改下面的代码
然后在scr_dash_state中也将movement =MOVE,因为冲锋过程和移动过程的动画是一样。
到此精灵控制优化就完成了