RPG_Basic(4):DRAW EVENT, BACKGROUNDS, SCRIPTS, AND STATES(绘制事件,背景,脚本,状态)
本系列是油管上的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个脚本(状态)
运行游戏,就能看到角色仍旧可以上下左右移动。