Game Maker Language リファレンス > 組み込み関数 用途別 > 物理エンジン > physics_fixture_set_edge_shape()
この関数は、「エッジ」フィクスチャ形状を定義します。 エッジシェイプは、他のフィクスチャがオーバーラップしたときに衝突を生成する単純な線であり、たとえば地形を生成したり、部屋の周囲に境界線を作成したりする場合に非常に役立ちます。 エッジの位置はローカルスペースを使用して定義されます。つまり、インスタンスのx / y位置は(0,0)と見なされるため、作成時にこれを考慮する必要があります(以下のコード例では、インスタンスは次のようになります)。 複雑さを避けるために、部屋の(0,0)に配置されています。
physics_fixture_set_edge_shape(fixture, local_x1, local_y1, local_x2, local_y2)
var xx = 0;
var y1 = room_height - 100;
var y2 = room_height - 50 - irandom(100);
for (var i = 0; i < 10; i++;)
{
var fix = physics_fixture_create();
physics_fixture_set_edge_shape(fix, xx, y1, xx + 50, y2);
physics_fixture_bind(fix, id);
physics_fixture_delete(fix);
xx += 50;
y1 = y2;
y2 = room_height - 50 - irandom(100);
}
上記のコードは、ルームの長さ全体にわたってさまざまな高さの「エッジ」フィクスチャのラインを作成します。