← 一覧に戻る
議論 フォーラム

GDevelopでオブジェクトが最も近いオブジェクトを収集する方法

GDevelopコミュニティフォーラムでは、プレイヤーキャラクターやアイテムなどのオブジェクトが、周囲にある特定のオブジェクトに順番に移動・収集していくような挙動を実装する方法について活発な議論が交わされています。

あるユーザーは、 "Heart" という名前のオブジェクトが "Fetch" という名前の最も近いオブジェクトに向かって移動し、Fetch を削除し、次に最も近い Fetch に向かう、という一連の動作を実装しようとしていました。しかし、実装したところ、最初の Fetch オブジェクトに移動した後は、その方向へ進み続けてしまい、次の Fetch オブジェクトへ移動しないという問題に直面していました。原因として、Permanent Force (永続的な力) を使用したことが考えられていますが、代替案が模索されています。Pathfinding 拡張機能も試したものの、期待通りの結果が得られなかったようです。

この問題に対して、フォーラムでは解決策が提案されています。Permanent Force の代わりに、"Jump to object" アクションや "Move toward position" アクション、あるいは "Distance" 関数と組み合わせてオブジェクト間の距離を計算し、最も近いオブジェクトへ移動させるイベントを作成する方法が考えられます。

具体的には、以下のようなイベント構成が示唆されています。

  • "Heart" オブジェクトが "Fetch" オブジェクトのいずれかに接触した際に、その "Fetch" オブジェクトを削除する。
  • "Heart" オブジェクトが現在いる位置から、最も近くにある "Fetch" オブジェクトの座標へ向かうように移動させる。
  • "Heart" オブジェクトが "Fetch" オブジェクトのいずれかに接触したことを確認する条件を追加する。

このアプローチにより、"Heart" オブジェクトは順番に "Fetch" オブジェクトを収集していくことが期待できます。

HeartオブジェクトがFetchオブジェクトに移動する例
HeartオブジェクトがFetchオブジェクトに移動する例

このように、GDevelopでは、オブジェクト間のインタラクションや順番に動作させるためのイベントを工夫することで、様々なゲームメカニクスを実現できます。フォーラムでの活発な意見交換は、開発者が直面する課題を解決するための貴重な情報源となっています。

ノート
この投稿は、GDevelopコミュニティフォーラムでの議論を基に作成されました。
元の情報源を見る →