GameMaker Studio 2

创建于:2017-04-19

创建人: dougen

189 信息 1069 成员
游戏开发工具 GameMaker Studio 2 的讨论小组

[ 分享 ]12.Better Character Sprite Control(角色精灵控制优化)

Linpean 2017-12-11

我们本系列是油管上的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来冲锋的错误仍未被修复。

近期喜欢的会员

 
疾风之盖尔 2018-03-01

没有明白这一节到底要修复什么问题,我试了好久都没看懂朝向上,向左冲锋有什么问题T_T。

 
Linpean 2018-03-05

疾风之盖尔 人物朝向左冲锋,那么人物也需要面朝坐标冲锋,不然你得到的效果,你人物面朝上方,而向左平移的效果。

 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册