physics_fixture_bind_ext()


Game Maker Language リファレンス > 組み込み関数 用途別 > 物理エンジン > physics_fixture_bind_ext()

physics_fixture_bind_ext()

フィクスチャを定義したら、インスタンスにバインドする必要があります。 つまり、そのプロパティは実際のフィクスチャ自体ではなく、選択したインスタンスに転送されるため、すべてが同じプロパティを持つ場合は、1つのフィクスチャを複数のインスタンスにバインドできます。 ターゲットのオブジェクトインデックスを指定すると、その時点で部屋に存在するすべてのインスタンスがそのフィクスチャプロパティを受け取ります(ただし、後で作成されるオブジェクトの新しいインスタンスは受け取りません)。または、特別なキーワード "other" と "all" を使用できます。 親オブジェクトを指定することもでき、その親を持つすべての子インスタンスもフィクスチャを受け取ります。 フィクスチャが必要なすべてのインスタンスにバインドされると、不要になった場合は削除でき、そのフィクスチャプロパティを持つインスタンスは影響を受けず、それらのプロパティを維持します。

通常、フィクスチャはインスタンスの原点に配置された重心でインスタンスにバインドされますが、これは必ずしも必要なものではないため、この関数を使用すると、フィクスチャがあるx位置とy位置をオフセットすることもできます。 指定された量でバインドされます(これが必要ない場合は、代わりに physics_fixture_bind() を使用してください)。 Box2Dでは単一のフィクスチャに複数のオフセットを追加することはサポートされていないため、フィクスチャは単一のオフセットしかサポートできないことに注意することが重要です。

physics_fixture_bind_ext_image.png

この関数は、バインドされたフィクスチャ(フィクスチャ自体ではなく)の一意の「id」値も返します。この値を使用して、関数 physics_remove_fixture() を使用してインスタンスから物理プロパティを削除(「バインド解除」)できます。 これにより、オブジェクトを破棄および再作成することなく、インスタンスに物理プロパティを追加および削除できます。

注意
フィクスチャは、必要がなくなったときに削除する必要があります。削除しないと、メモリリークが発生し、速度が低下してゲームがクラッシュする可能性があります。

構文

physics_fixture_bind_ext(fixture, target, xoffset, yoffset)
fixture
バインドされるフィクスチャ
target
フィクスチャを受け取るターゲットインスタンス(インスタンス、オブジェクトID、"other"、"all")
xoffset
X方向のオフセット値
yoffset
Y方向のオフセット値

戻り値

Real
バインドしたフィクスチャのID (フィクスチャ自体ではない)

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_ext(fix, inst, sprite_width / 2, -(sprite_height / 2));
physics_fixture_delete(fix);

上記のコードはフィクスチャを作成し、そのインデックスを変数「fix」に割り当てます。 次に、スプライトの幅と高さに基づいてオフセットでインスタンスにバインドする前に、フィクスチャの形状と密度を定義します。 バインドされたフィクスチャのインデックスは、変数「my_fix」に格納されます。 最後に、フィクスチャ自体が削除され、メモリリークが不要になったために防止されます。

Wiki内検索

#search(): You already view a search box

MENU

ドキュメント

GMLリファレンス

2ch

その他



最新の30件

2021-01-23 2021-01-22 2021-01-21 2021-01-19 2021-01-18 2021-01-17 2021-01-16 2021-01-15 2021-01-14 2021-01-13

人気の10件

今日の2件



これまでの訪問者: 35
今日の訪問者: 1
昨日の訪問者: 0
閲覧者: 2