TIPS:2つのオブジェクトをリンクさせる

2024年2月5日月曜日

GDevelop TIPS

X f B! P L

はじめに

 今回のTIPSは、オブジェクトリンクです。

オブジェクトリンクとは、ふたつのインスタンスをリンクさせる機能です。
例えば、シーンに複数存在する同じキャラクターのインスタンスすべてにHPバーを追従させたい場合、キャラクターとHPバーをリンクさせるとキャラクターの座標に合わせてHPバーの座標を追従して変更できます。

このシステムに最低限必要なものは

  • リンク元となるオブジェクト
  • リンクさせるオブジェクト
  • foreachイベント
この3つです。

foreachとは、ループ処理のひとつです。
高速ループに似ていますがすこし違います。
高速ループが、指定した回数だけアクションを繰り返すイベントなのに対し
foreachは、指定したオブジェクトのインスタンスごとにアクションを繰り返すイベントです。

では、さっそく手順をご紹介します。

ふたつのオブジェクトをリンクさせる

リンク元オブジェクト(敵キャラ)を生成し、同じイベント内で敵のヘルスバーを生成したなら、ふたつを同イベント内でリンクさせます。


OrangeFlatBar(ヘルスバー)をRollingNero(敵キャラ)にリンクさせました。

このイベントでは周期的に敵キャラとヘルスバーが同時に生成されます。
複数の敵キャラクターの座標に同時生成されたヘルスバーをそれぞれ追従させるには、foreachを使います。

foreachを追加するには右クリックメニューから新規イベントを追加します。

「クリックしてこのイベントでリピートするオブジェクトを選択してください」と表示された場所をクリックし、リンク元となるオブジェクトを選択します。

この場合、リンク元オブジェクトは「RollingNero」という名前の敵キャラになります。

そして、このforeachイベントに「リンク元オブジェクトにリンクされたすべてのヘルスバーを考慮」という条件を追加します。

つぎに、アクションでヘルスバーの座標を敵キャラの座標に基づいて変更します。

ヘルスバーと同じ要領で影や敵キャラクターの表示名なども生成してリンクさせてみましょう。

リンクさせたオブジェクトを削除する

今度は、敵キャラクターが倒されたりして消失するタイミングで、ヘルスバーなどリンクしたオブジェクトも同時に削除するイベントを追加します。
これが無いと、敵キャラクターが消失後もヘルスバーや影だけその場に残ってしまいます。

手順としては、敵消失の条件を満たしたときにサブイベントで、ヘルスバーの座標変更の時と同じ要領でforeachイベントと条件を追加し、アクションでヘルスバーを削除します。

このとき、敵キャラを削除するタイミングはヘルスバーを削除したあとにします。

サンプルオンラインプレビュー

サンプルゲームを公開します。
画面をクリックするとプレイヤーが敵キャラを攻撃します。
敵キャラ死亡時に、リンクさせたヘルスバー、影、IDが同時に削除されます。

サンプルプロジェクトファイル

今回のTIPSで使用したプロジェクトファイルを配布します。
改変や組み込みなど、ご自由にご利用くださいませ。

おわりに

オブジェクトリンクはこのほかにもさまざまな用途があります。
いろいろと応用してみましょう。

※追記(2024/03/29):PANDAKOさんによって翻訳の一部が修正されました。
PANDAKOさん、ありがとうございます。


最後までお読みいただきありがとうございました😆
もしよろしければ下記のボタンから応援よろしくお願いします🙇



こちらの記事はいかがでしたか?
ぜひご評価をおねがいします🙏

プロフィール


My name is Cratier.
I'm an indie game developer.


Read more...

このブログを検索

Translate

UPDATE

最新コメント

人気の投稿

アーカイブ

リンク元ランキング

カテゴリー

アンケート



Q.クレイティアのGD覚書でお気に入りのコンテンツはどれですか?

チュートリアル
TIPS
RTA Develop
雑記
That's談
その他


Q.あなたのGDvelop使用歴はどれくらいですか?

1ヶ月未満
半年未満
1年未満
1年以上
2年以上
3年以上
4年以上
5年以上

オープンチャット

LINEアカウント

ご連絡フォーム、またはLINEから お問い合わせ、ご要望、ご指摘など、お気軽にご連絡くださいませ。

ご連絡

名前

メール *

メッセージ *

💗雑談CHAT💗
お気軽にお話しください🐹
同時接続人数:

もしよろしければ下記のボタンから応援よろしくお願いします🙇




QooQ