GMS2 学习笔记(二)

作者: 阿汤弟弟 | 来源:发表于2017-11-06 23:13 被阅读0次

前言

跟着Heart Beasts的横版射击游戏制作教程走到了第五章,渐渐发现脑子有点跟不上啊,事件太多,套路(方法的使用方式)太多,文科生伤不起。

这次的学习笔记试着换个思路来写,第一篇有点太偏向于基于官方文档对方法的解读,而没有结合实例,而本身学了一段下来发现难点不在于对方法的记忆,而是对方法的活学活用及灵活的表达式编写,所以这篇会试着从实践的角度来对一些学习中遇到的问题进行记录。


自建脚本的创建和使用

自建脚本的就是:将可以多次复用的代码写到脚本中,以方便后期的复用。

教程中多次使用到place_meeting这个碰撞检测方法,所以将其编写成名为“move”的脚本,如下:

这段代码表示检测X Y方向下一次运动是否会与对象发生碰撞

但是这里有一点到现在还没弄明白,脚本中的检测对象始终是o_solid对象(墙体对象),但是教程有将这个脚本运用到敌人与敌人的碰撞检测中,这里记录下,希望后续能够弄明白这一点。

状态机(event_user方法)

就是可以赋予一个对象多个状态的机制(自己解读LOL),用好状态机,可以让自己的代码在后期回溯修改或者debug的时候更方便,换句话来说就是加强代码的可读性。比如在最开始我们在step事件里面需要去写对象的移动、对象的攻击、对象被击中的状态等,但是用状态机,就可以将不同事件的代码分配到不同的状态机当中,这样在step事件中只要去调用不同的状态即可。

1、通过在create事件中通过语义化的变量名称来代表状态机的参数,定义默认的状态为MOVEMENT 2、在step事件中只保留了一行代码,就是event_user方法,由于state_变量可变,因此状态也得以变化 3、要记住在不同的状态后加上状态切换的判断条件,不然状态机就不会循环了~


灵活运用方法

教程中有个地方是要判断一个对象速度减弱到无限趋近于0的时候,就会切换状态机状态,正常可以在hspeed_push和vspeed_push的值等于0或者<1的时候的条件判断去做状态切换这里Heart Beasts用了一个我觉得很聪明或者说取巧的方法(膜拜大神)来做到判断。

代码是这样的:

point_distance方法本来是用来返回两点间距离的,前两个参数是A点的x,y坐标,后两个参数是B点的x,y坐标,这里就很聪明的让A点是0,0,而B点的参数是对象在x,y方向上的速度,通过这种方式来返回速度当前速度,真的是绝妙。。。


以上是本次的笔记,感触最深的是第三点,这就是在前言说的套路吧,同样的方法可以有许多实用方式,关键在于你能得到想要的变量和判断结果。

相关文章

  • GMS2 学习笔记(二)

    前言 跟着Heart Beasts的横版射击游戏制作教程走到了第五章,渐渐发现脑子有点跟不上啊,事件太多,套路(方...

  • GMS2 学习笔记(一)

    前言 从上一篇日志到现在不知不觉已经已经一年多了,这一年几乎沉迷在游戏里面,无论是个人原因还是公司环境原因,反正本...

  • GMS2学习笔记(三)

    前言 这一周脑袋里都在想怎么实现抛物线运动,数学差的人真的伤不起,周末在家里试试自己能实现不。跟着Heart Be...

  • GMS2学习笔记(四)

    前言 跟着HeartBeast的教程已经接近尾声了,自己想做的第一个简单的游戏也有了个基本的想法。只是每天的时间实...

  • 暂停GMS2相关的内容

    原因很简单我当上策划了,现在需要学习新的引擎,原GMS2的内容有许多已经不再适用,目前无暇继续进行GMS2的内容了...

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

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

  • JavaScript学习笔记二

    JavaScript学习笔记二 个人学习笔记参考阮一峰的JavaScript教学学习笔记二是对学习笔记一的补充 J...

  • MySQL 学习实践笔记(四)

    MySQL 学习实践系列 MySQL 学习实践笔记(一) MySQL 学习实践笔记(二) MySQL 学习实践笔记...

  • MySQL 学习实践笔记(三)

    MySQL 学习实践系列 MySQL 学习实践笔记(一) MySQL 学习实践笔记(二) MySQL 学习实践笔记...

  • MySQL 学习实践笔记(二)

    MySQL 学习实践系列 MySQL 学习实践笔记(一) MySQL 学习实践笔记(二) MySQL 学习实践笔记...

网友评论

    本文标题:GMS2 学习笔记(二)

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