GameMaker Studio 2

创建于:2017-04-19

创建人: dougen

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

RPG_Basic(3):VARIABLES AND CHARACTER SPRITES(变量和人物精灵)

Linpean 2017-10-24

本系列是油管上的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没有精灵动画,它的精灵子图像永远固定不变。

Image title

如果想要在角色移动时,根据他移动的方向,播放不同的动画就需要改变obj_player的精灵子图像索引和动画速度了。

在if事件中添加索引更改,设置动画播放速度为0.2;


在step事件监测按键输入,每帧都会更新按键的情况,从而会导致其中某一个KEY被按下后,松开后,精灵子图像不会复原,就是在最后添加一个复原精灵子图像的代码,注意当设置image_speed = 0,精灵子图像索引会自动回到第一帧。

近期喜欢的会员

 

加入 indienova

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