physics_fixture_bind

一旦我们定义了我们的装置,它必须绑定到一个实例。这意味着其属性将传输到选定的实例,而不是实际的装置本身,因此,如果一个装置都具有相同的属性,则可以将其绑定到多个实例。您可以为目标指定一个对象索引,当时房间中存在的所有实例都将收到装置属性(但不是以后创建的对象的任何新实例),或者您可以使用特殊关键字 otherall。您甚至可以指定一个父对象,具有该父对象的所有子实例也将收到装置。将装置绑定到所需的所有实例后,如果不再需要,可以将其删除,并且具有该装置特性的实例将不会受到影响并保持这些特性。

固定装置将绑定到实例,质心位于实例的原点,多边形固定装置根据点 相对于 原点的位置进行绑定。如果您需要将夹具绑定到原点以外的点,那么您应该使用 physicals_fixture_bind_ext

Physics fixture binding example 该函数还将返回 绑定 固定装置 ( 不是固定装置本身 ) 的唯一 "id" 值,然后可使用该值从固定装置中移除 (" 取消绑定 ") 物理属性。使用函数 physical_remove_fixture 的实例。这允许您在实例中添加和删除物理属性,而无需销毁和重新创建对象。

注意 不再需要的装置应被删除,否则可能会导致内存泄漏,从而减慢游戏速度并最终崩溃。

 

语法:

physics_fixture_bind(fixture, target)

参数类型描述
fixturePhysics Fixture ID要绑定的装置
targetObject Instance or Object Asset要接收装置的目标实例(可以是实例 ID、对象 ID、otherall)

 

返回:

Real

 

例子:

var fix, inst;
fix = physics_fixture_create();
physics_fixture_set_circle_shape(fix, 16);
physics_fixture_set_density(fix, 1.0);
inst = instance_create_layer(x, y, "Instances", genericBodyObject);
my_fix = physics_fixture_bind(fix, inst);
physics_fixture_delete(fix);

上面的代码将创建一个装置并将其索引分配给变量 "fix"。然后定义装置的形状和密度,然后将其绑定到使用存储在变量 "my_fix" 中的限制装置的索引创建的实例。最后,装置被删除,以防止内存泄漏,因为它不再需要。