RPGMakerMV探秘08-插件分析2(魔法圈及粒子效果)
接上文RPGMakerMV探秘08-插件分析1(添加鸣谢),本文我们研究下在标题界面上再搞点事情,加点粒子效果,再来个魔法圈,让标题界面动起来。
我们经常会看到,部分游戏的标题界面会出现漂浮的一些粒子,有时候还会有转圈圈的魔法圈,这样增加了标题界面的内容,让标题界面不那么枯燥乏味,配合得好,也会让界面更加的美观,产生动态效果。
首先,我们在脑海想象一下,这个添加了粒子效果和魔法圈的标题界面是什么样子的。界面上会有很多粒子在漂浮,魔法圈在某个位置转动,甚至粒子或魔法圈在闪烁、忽大忽小。结合上一篇文章,我们需要把粒子和魔法圈“造”出来,然后通过周期函数,让粒子和魔法圈实现动态效果。根据这个思路我们再来看看下面的代码:

首先,仍然是获取参数,这些参数定义了粒子和魔法圈的基本属性,几乎能完整描述两者的原始状态及运动过程效果。

既然我们要在标题场景Scene_Title上“造”粒子和魔法圈,那么我们就得重写Scene_Title的createBackGround方法,把我们的东西加到场景中去。create_particles和create_magic_circle方法分别创建了粒子及魔法圈。下面我们来看看创建过程:

首先粒子的创建,粒子必然是一张资源图片,先加载资源。通过for循环,创建我们设置好的粒子个数。同时在创建每一个粒子时,它的位置、透明度、锚点、混合模式都需要指定,否则你创建的粒子,它自己也不知道该显示在哪里。这其中有一个reset_particles方法,这个方法会作用在两种情况下,第一、粒子创建时,第二、粒子飘出界面时。他的主要作用是利用
_sprite_particles_data这个二维数组初始化每个粒子的行动轨迹参数。其中一个例子就是粒子在纵向运动时,有一个纵向运动偏移参数,在周期函数作用下,粒子的位置会不断的叠加该偏移参数,如果我们不对偏移参数进行正负值的判断来设置粒子的纵向起始位置,那么我们可能永远都见不到粒子出现在界面上。再者,位置不断改变,总会飘出界面,让它一直飘下去,就可能飘到外太空了。所以需要重置方法,重置和判断粒子的起始位置。
重置方法如下:

魔法圈的创建与粒子如出一辙,只是魔法圈这里是单张资源,且运动过程也比较单一,所以创建过程也比较简单。

资源都创建完毕后,实现动态效果就少不了周期函数update。重写Scene_Title的update方法,新增update_particles和update_magic_circle方法,让资源都动起来。

每次周期函数的调用,都使用for循环对所有粒子进行位置、透明度、旋转角度的改变。最后还需要检测粒子是否已经飘出界了,飘出界需要重置粒子,让它恢复初始状态继续飘。

魔法圈的动态效果就比较简单,每次update改变旋转角度和透明度即可。
通过上述步骤,我们就实现了之前我们在脑海中想象的标题界面的动态效果。
注:以上分析均为作者兴趣出发,自学有感,对于js的认知还存在不足或者偏差,如有错误,欢迎指正。