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

GDevelopでコイン取得時の重複を防ぐ方法

GDevelopコミュニティフォーラムで、プレイヤーがコインを取得した際に、スコアやコインの数が重複して表示・加算されてしまう問題に対する解決策が共有されました。

この問題は、コインを取得した後に、コインオブジェクトが削除される前に再度イベントが実行されてしまう場合に発生しやすいようです。

フォーラムでの議論によると、この重複を防ぐためには、コインを取得した際にコインオブジェクトを即座に削除するか、あるいはコインが取得されたことを示すフラグを設定し、そのフラグが有効な間は再度コインを取得できないようにする、といった方法が提案されています。

例えば、以下のようなイベント構成が考えられます。

  • 条件: プレイヤーとコインが衝突している
  • アクション:

* コインの数を増やす(例: "Variable(Score)" + 1)

* コインオブジェクトを削除する

あるいは、コインオブジェクトに"Collected"のようなビヘイビアを追加し、

  • 条件: プレイヤーとコインが衝突している AND コインの"Collected"ビヘイビアがFalse
  • アクション:

* コインの数を増やす

* コインオブジェクトの"Collected"ビヘイビアをTrueにする

* (必要であれば)タイマービヘイビアなどで一定時間後に"Collected"をFalseに戻す、またはコインオブジェクトを削除する

といった実装も可能です。

プレイヤーがコインを取得する様子
プレイヤーがコインを取得する様子

この投稿は、GDevelopでアイテム取得時のイベント処理に悩んでいる開発者にとって、具体的な解決の糸口となるでしょう。同様の問題に直面している方は、これらのアプローチを参考に、ご自身のプロジェクトに合わせて実装を検討してみてください。

元の情報源を見る →