physics_fixture_bind()


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

physics_fixture_bind()

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

フィクスチャは、重心がインスタンスの原点に配置された状態でインスタンスにバインドされ、ポリゴンフィクスチャは、原点に対するポイントの位置に基づいてバインドされます。フィクスチャを原点以外のポイントにバインドする必要がある場合は、physics_fixture_bind_ext() を使用する必要があります。

physics_fixture_bind_image.png

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

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

構文

physics_fixture_bind(fixture, target)
fixture
バインドされるフィクスチャ
target
フィクスチャを受け取るターゲットインスタンス(インスタンスID or オブジェクトID or "other" キーワード or "all" キーワード)

戻り値

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(fix, inst);
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件

今日の10件



これまでの訪問者: 33
今日の訪問者: 1
昨日の訪問者: 1
閲覧者: 3