part_system_global_space

该函数为给定的粒子系统启用全局空间粒子。

当全局空间粒子被禁用 (默认) 时,粒子的位置 相对于 粒子系统的位置。当你移动这样的粒子系统时,它的粒子也会随之移动。

启用全局空间允许您移动粒子系统而不移动其中的粒子。这可以用于例如创建粒子轨迹:

禁用启用

在上面的例子中,单个粒子在粒子系统中的相同位置创建,粒子系统本身在每帧移动到船的位置。

第一个视频显示禁用了全局空间,因此所有粒子都粘在其系统上,但在第二个视频中,粒子停留在创建它们的房间位置。

启用后,您可以分别使用 part_system_positionpart_system_angle 移动和旋转粒子系统,而无需移动其中的各个粒子。

注意 如果您在内部已有粒子的粒子系统上启用全局空间,则您可能会看到这些现有粒子在从相对于粒子系统切换到相对于粒子系统时跳转到屏幕上的新位置。相对于房间原点。

 

语法:

part_system_global_space(ind, enable);

参数类型描述
indParticle System Instance粒子系统的指数
enableBoolean是否启用或禁用全局空间粒子

 

返回:

N/A

 

示例:跟随实例的粒子系统

创建事件

ps = part_system_create();
part_system_global_space(ps, true);
pe = part_emitter_create(ps);

pt = part_type_create();
part_type_shape(pt, pt_shape_flare);
part_type_direction(pt, 0, 360, 0, 0.3);
part_type_speed(pt, 0.1, 0.2, 0, 0.01);
part_type_scale(pt, 0.3, 0.3);

part_emitter_stream(ps, pe, pt, 2);

步骤事件

part_system_position(ps, x, y);
part_system_angle(ps, direction);

清理事件

part_emitter_destroy(pe);
part_system_destroy(ps);
part_type_destroy(pt);

上面的代码显示了如何向实例添加粒子系统,以便在实例移动时留下粒子轨迹。

在 " 创建 " 事件中,将设置一个基本粒子系统,并添加一个发射器。使用 part_system_global_space,将其配置为将其粒子置于全局空间中。还添加了基本粒子类型,其配置为具有耀斑形状 (pt_shape_flare)、起始方向 (可以是 0 到 360 之间的任意随机值)、起始速度 (每步 0.1 到 0.2 像素之间的任意值) 以及比例因子为 0.3。

在 Step 事件中,粒子系统的位置和角度分别设置为实例的 (x,y) 位置及其 direction

最后,在 清理事件中,粒子发射器、系统和类型都会被销毁,以防止内存泄漏。