GameMaker Studio 2

创建于:2017-04-19

创建人: dougen

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

[ 分享 ]10.PLAYER ATTACK STATE(攻击状态)

Linpean 2017-11-01


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

本节主要内容:

  • 13.10.10.1.创建带有特效的精灵SPR_PLAYER_ATTACK_DOWN
  • 13.10.10.2.创建一个组PLAYER,将角色相关的精灵放入在内
  • 13.10.10.3.在INPUT脚本中,书写释放攻击的按键检测
  • 13.10.10.4.创建攻击脚本SCR_ATTACK_STATE
  • 13.10.10.5.在SCR_MOVE_STATE脚本,进行切换状态
  • 13.10.10.6.使用ANIMATIONEND事件来再次切换状态回到MOVESTATE

创建带有特效的精灵spr_player_attack_down

宽高为28*42,一共7帧,同样采用strip的方式进行多个导入精灵图片


设置原点和碰撞盒,这里需要将原点设置为对应的待机动作的匹配原点,即根据待机时的精灵图片的原点,来设置攻击的精灵图片,原点(也是因为这里攻击的精灵图片和待机的精灵图片不一样大小的缘故),这样在播放攻击的精灵动画时就不会发生跳帧。


和原有的向上行走动画spr_player_down的y轴点保持一致


同样的,创建其他3个精灵

spr_player_attack_right(7,10)


spr_player_attack_left(28,10)


spr_player_attack_up(14,31)



创建一个组Player,将角色相关的精灵放入在内



在Input脚本中,书写释放攻击的按键检测


创建攻击脚本scr_attack_state

设置攻击时播放精灵动画的速度

根据sprite_index的变量值来改变动画精灵图片。


在scr_move_state脚本,进行切换状态

检测到攻击按键按下时,将状态切换成攻击状态


使用AnimationEnd事件来再次切换状态回到movestate

即当攻击动画被播放完后,状态切换回移动状态

在obj_player的Add Event---other---Animation End事件中添加如下代码


到了攻击动作就做好了,但是关于攻击的效果(伤害和击退呢都还需要后续添加)


近期喜欢的会员

 
疾风之盖尔 2018-02-26

你好,可以把教程用到的素材分享出来吗?谢谢。

 
Linpean 2018-03-21

疾风之盖尔 你是翻墙不了对吧,我有时间整理一份上传吧

 
疾风之盖尔 2018-03-21

Linpean 谢谢!

 
lumartin 2018-04-11

您好,我按照您的教程做到这里,但是出现了攻击动画播放经常掉帧,缺帧,播放不完全的情况,请问是应该什么问题呢

 
Rusty 2018-04-16

lumartin 可能是因为精灵图并没有从第一帧开始播放,在每个sprite_index = xxxx后面再加个image_index = 0试试(持续触发的条件下不要这么做,比如按住方向键实现走动,会因为始终符合触发条件导致只播放第一帧)

 
lumartin 2018-04-27

Rusty 是的呢,这个坑过去了,多谢回复指导

 

加入 indienova

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