ブロードキャストメッセージ


Game Maker Language リファレンス > 組み込み関数 用途別 > リソース操作 > リソース操作・シーケンス > ブロードキャストメッセージ

ブロードキャストメッセージ

シーケンスとスプライトはどちらも、その長さに沿った任意の時点で、いわゆるブロードキャストメッセージを生成できます。 これらのメッセージは、アニメーションタイムラインに沿って特定のフレームに追加される単純な文字列であり、タイムラインのそのポイントに到達すると、それをリッスンするすべてのインスタンスに文字列がブロードキャストされます。 ブロードキャストメッセージイベント(「その他」イベントカテゴリにある)を持つインスタンスは、タイムラインで到達したときにメッセージ文字列を受け取ります。その時点で、それを解析してそれに応じて反応するコードを用意する必要があります。 また、シーケンスはブロードキャストメッセージを受け取ることもできますが、これにはまずコードを使用してリスナーメソッドを設定する必要があります(詳細については、シーケンスイベントとモーメントのGMLセクションを参照してください)。

注意
現在、シーケンスで作成されたブロードキャストメッセージのみを処理できます。 今後のアップデートでは、この機能がスプライト/インスタンスにも追加され、このページが更新されます

ブロードキャストメッセージイベントがトリガーされると、特別な DS_Map が作成され、組み込み変数 event_data に格納されます。 この変数IDは組み込みのグローバルスコープ変数ですが、それをトリガーしたイベント(この場合はBroadcast Messageイベント)にDSマップデータのみが含まれ、それ以外の場合は常に-1を返します。 イベントが持つキーは次のとおりです。

  • event_type: ブロードキャストメッセージの場合、現状では文字列 "sequence event" のみになります。
  • message: このキーには、受信したメッセージ文字列が含まれます
  • element_id: このキーには、ルームエディターのレイヤー上の要素(シーケンス/スプライト/インスタンス)のIDを返します。 次に、このID値を使用して、layer_get_element_type() 関数を使用してメッセージを生成した要素の種類を確認し、他の関連関数を使用してそれをターゲットにしたり、必要に応じてサウンドの再生などのアクションを実行したりできます
    複数の文字列でブロードキャストメッセージを定義できることに注意してください。 これが発生すると、イベントはメッセージ文字列ごとに複数回トリガーされます

    以下は、このイベントを確認する方法の簡単な例です。
    if event_data[? "event_type"] == "sequence event"
    {
    switch (event_data[? "message"])
      {
      case "hit":
        audio_play_sound(snd_hit, 0, false);
        break;
      case "destroy":
        sequence_destroy(event_data[? "element_id"]);
        break;
      }
    }

Wiki内検索

#search(): You already view a search box

MENU

ドキュメント

GMLリファレンス

2ch

その他



最新の30件

2024-03-07 2023-08-09 2023-05-21 2023-05-20 2023-05-04 2022-10-13 2022-07-21 2022-07-02 2022-04-06 2021-11-30 2021-11-26 2021-10-03 2021-09-23 2021-08-15 2021-06-02 2021-01-23 2021-01-21 2021-01-19 2021-01-18 2021-01-16 2021-01-15

人気の10件

今日の10件



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