GameMaker Studio 2

创建于:2017-04-19

创建人: dougen

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

RPG_Basic(4):DRAW EVENT, BACKGROUNDS, SCRIPTS, AND STATES(绘制事件,背景,脚本,状态)

Linpean 2017-10-27

本系列是油管上的HeartBeast[Beginner] Make an RPG课程的中文笔记,主要形式是截图的方式进行步骤上的说明。面向对象:GameMaker新手,以学习一门脚本编程语言,制作一个RPG游戏为目标的爱好者。


本节主要内容:

  • 导入背景图片,设置平铺
  • 绘制角色脚下阴影
  • 创建脚本,检测键盘输入
  • 使用状态机来储存角色行为

设置房间背景图片

注:在GMS2版本中,资源树已经去除了Background类型,所以在GMS2设置背图片的方式时:

先创建精灵,命名为“spr_grass”,然后导入外部文件作为精灵图像


,然后在房间属性中,设置并平铺(Horizontal Tile水平平铺,Vertical Tile垂直平铺)




设置角色脚底阴影

 创建一个精灵,命名"spr_player_shadow"

并导入外部文件作为精灵图像(文件下载地),设置中心为center(x:7,y10)


然后使用obj_player的draw事件来绘制人物的脚底阴影

注:在创建draw事件后,GMS就会不再调用默认的绘制自身的事件,所以需要在代码中额外增加一行“draw_self”


draw_sprite(精灵名称或者索引,图片编号,x坐标,y坐标)



创建脚本检测输入

创建脚本scr_get_input(),并且将检测输入的代码,全部移动至该脚本内


然后移除在obj_player对象内的检测输入代码,换成调用该脚本,主要在create和Step都要调用1次,create调用是因为要创建变量,step是需要每步进行检测


create事件:

step事件:







使用状态机



创建脚本,scr_move_state,然后将原本obj_player内的所有移动相关代码放置到该脚本内



在obj_player的Create事件中,声明状态变量state = scr_move_state


注:所谓状态机,简单而言就是同一时间只执行一个(种)动作或者行为,用变量state存储这个唯一的行为,在GMS2中的方式就是把脚本的名称赋值给变量,该变量就会成为脚本的索引。

在step事件中只要调用script_execute()函数执行该脚本即可保证同一时间只调用1个脚本(状态)



运行游戏,就能看到角色仍旧可以上下左右移动。

近期喜欢的会员

 

加入 indienova

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