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); }
上記のコードは、ルームの長さ全体にわたってさまざまな高さの「エッジ」フィクスチャのラインを作成します。