对于 GameMaker Studio 2 中复杂的东西,你通常会有一个物体然后在房间内创建那个物体的实例。然而,对于图形效果,这可能是昂贵的消耗,因为每个实例在处理中由于其包含的变量以及它在不同事件中写入的代码而具有“成本”。你可以转而使用图块来绘制图形,或者甚至使用在房间编辑器中的资产层(精灵层)来降低此成本,但这两者通常仅用于绘制随时间保持相同位置且几乎没有特殊效果的简单图形。但是,还有另一种选择可以在游戏中绘制快速但多功能的图形效果,也就是使用粒子。
粒子是具有某些属性的图形资源,这些属性在一个粒子系统中定义。这些属性不能直接针对单个粒子进行操作,而是通过在粒子系统中定义个体的粒子类型的动作进行更改。它们非常适用于创建漂亮和华丽的效果(或微妙而谨慎的效果!),如游戏中的爆炸,贴花,雨,雪,星域和碎片,没有使用实例和/或图块以及资产的CPU或GPU开销。
粒子系统的基本设置遵循三个步骤:
虽然粒子是创造效果的绝佳工具,但它们确实带有某些限制和规则(需要良好的练习),除非你希望游戏出现问题,否则需要遵循这些限制和规则:
- 粒子系统,粒子类型和粒子发射器都占用了内存,因此你应该非常小心地使用它们,因为它很容易导致内存泄漏,这会减慢并最终导致你的游戏崩溃,所以每个粒子类型和发射器(可能还有系统本身)都应该在不需要时销毁。
- CPU 和 GPU 上的粒子可能很快且很轻,但是它们仍然需要一些处理资源,所以你不应该一次性在屏幕上喷发40,000个。将它们限制为实现特定效果所必需的个数,而不是更多。
- 如果你是定义自己的粒子精灵而不是使用14个精灵中的一个,在实现你需要的效果的前提下,你应该让它们尽可能的小。
- 粒子不会与任何事物交互。如果你需要它们与用户或游戏中的任何其他实例进行任何类型的交互,你应该考虑使用实例,因为粒子是纯粹的图形。
- 即使你在一个游戏中创建发射器和粒子数量上没有技术限制,你也应该尝试尽可能的使用更少的数量和消耗更低的内存。
- 在移动设备上,请注意粒子,因为如果它们覆盖屏幕的大面积区域,它们会很慢(移动设备上过度绘制 over-draw 是导致减速的主要原因之一)。
- 在 HTML5 目标平台时,请注意,除非你启用了 WebGL,否则你无法进行颜色混合(只有第一个粒子颜色将用于非 WebGL 画布)。
以下部分介绍了制作自己的粒子系统的所有动作:
创建粒子系统 | |
销毁粒子系统 | |
清空粒子系统 | |
暂停粒子系统 | |
更新粒子系统 | |
创建粒子类型 | |
销毁粒子类型 | |
设置粒子大小 | |
设置粒子的精灵 | |
设置粒子形状 | |
设置粒子颜色 | |
设置粒子透明度 | |
设置粒子生命周期。 | |
设置粒子速度 | |
设置的粒子方向 | |
设置粒子朝向。 | |
设置粒子的重力。 | |
设置次级粒子 | |
喷发粒子 | |
创建粒子发射器 | |
销毁粒子发射器 | |
发射粒子 | |
设置发射器区域 | |
产生特效 |