美文网首页GMS2入门
Dev_log_1 前言及GML模式下实现人物移动

Dev_log_1 前言及GML模式下实现人物移动

作者: 想当狗策划 | 来源:发表于2021-02-01 22:49 被阅读0次

这系列文章是写给自己做笔记的初学者教程,GMS2的大佬们无需在此浪费时间。

希望自己能坚持下来,这是我为自己创作游戏demo所写下的一些笔记。

我对这个demo的初步想法是,把它做成一个,操作方式更接近Roguelike游戏的,但内容侧重于剧情叙事的游戏demo。不可避免的,我首先想到了使用Rpg Maker来完成这个过程。但是Rpg Maker这个软件的设计思路局使得它所实现的游戏局限在了回合制的框架中,即便真的用这个软件做出了ARPG(但这真的可能么)的游戏。(大概Action的要素需要被无限弱化吧)

得益于友人所助,我可以使用Game Maker Studio 2 来完成这个过程了。

制作游戏的第一步,当然是要让玩家操纵的角色动起来。我取巧地使用了Rpg Maker Mv的素材,他们的素材自带移动差分CG,比较好用。

这里我将我的人物动画素材导入了GMS2,并切片成了四片:


人物素材

切片的依据是人物的移动方向

新建一个Step事件,这里之所以不用Keyup,Keydown也是为了让我的事件显得不是那么的冗余。

按键替代

移动按键替代

到这里为止,我设想的操作模式是,使用键盘的WSAD来移动,使用鼠标进行瞄准与射击。考虑到我并没有美术的能力,我并不打算实现让玩家可以进行八个方向的位移(即wsad四键两两组合的四个方向不实现)

那么WSAD这样经典的位移按键组合对于右手要使用鼠标的玩家而言显然是友好得多的。

这里涉及了两个函数:
keyboard_set_map(key1,key2)
这里key1为替换用的按键,key2为被替换的按键。

ord("str")
ord在GML语言里和chr作用相反,前者将输入的字符由字母转换为ASCII码,后者反之。对于不存在于ASCII码表内的按键(譬如ctrl,alt),则GML文件里用一些vk_开头的常量来代表它们。

按键事件判断

接下来要让程序每帧检测玩家是否按下了按键:


检测向上位移

想象一个直角坐标系, xy的值即是目标精灵所在的坐标。不同于传统直角坐标系,12点方向是y轴正方向,在GML里Y轴的正负方向同传统的直角坐标系是相反的。

keyboard_check(key1)
顾名思义,检测某个按键是否被按下,倘若按下返回true,否则返回false。

前文我已经将w取代了vk_up这个按键,因此此处检测的是w键是否被按下。

if判断框内,按下w所发生的事件内容为:

y=y-4: //人物向六点钟方向位移
image_speed=0.5; //移动动画的播放速度为0.5
sprite_index=spr_player_up; //选取播放的移动动画

前面我将人物移动动画进行切片,切片为四个不同方向的移动动画,因此此处需要用sprite_index函数来决定播放哪一个切片。

给四个按键分别加上判断,即可实现人物的移动啦。最后在if事件框外建议补充一个image_speed=0;来初始化动画播放速度,除非你想在不按键的情况下看着角色在房间里犯多动症。

相关文章

  • Dev_log_1 前言及GML模式下实现人物移动

    这系列文章是写给自己做笔记的初学者教程,GMS2的大佬们无需在此浪费时间。 希望自己能坚持下来,这是我为自己创作游...

  • 史上最快! 10小时大数据入门实战(九)- 前沿技术拓展Spar

    spark Spark 开发语言及运行模式介绍 Scala安装 Spark环境搭建及 wordCount 案例实现

  • 实现人物移动加速

    1 打开FirstPersonCharacter 2 控制人物前后左右移动的蓝图 3 在项目设置里的输入中有移动的...

  • Unity物体移动到点击位置

    Camera 在正交模式下可以实现点击哪里就将物体移动到哪里。 public Vector3 tempPos; v...

  • vim

    光标操作 在命令模式下可以通过h、j、k、l来控制光标向左、下、上、右的方向移动,可以在字母前输入数字来表示移动的...

  • networkx网络包

    1. networkx复杂网络 网络结构的数据集存储在*.gml文件中,可以使用networkx读取、写入gml文...

  • 全向移动

    全向移动 任务目标 移动设备的姿态变化作为控制指令,体感控制机器人实现无头模式运动。 任务流程 为了实现全向移动这...

  • 两种模式

    vim 的两种模式 normal 模式(默认模式) 特点:光标是粗的作用:这种模式下主要用来移动光标位置 移动光标...

  • uniapp的动画运用(二)移动动画《人物移动》

    人物移动在游戏中很常见,今天就简单介绍一下在uniapp中如何实现让一个“人物”沿着一条“路线”走的动画。这个里面...

  • VIM的三种模式和转换

    一、三种常见模式:1、命令模式或者普通模式:默认模式,可以实现移动光标,剪切和复制文本;2、插入模式或编辑模式,用...

网友评论

    本文标题:Dev_log_1 前言及GML模式下实现人物移动

    本文链接:https://www.haomeiwen.com/subject/vsastltx.html