【軽量】godot engine【無料】 part4 (944レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

835: 名前は開発中のものです。 [sage] 2025/08/22(金) 13:20:20.86 ID:hykeI/+Z(1) AAS
今回上がった>>828,829
828(2): 名前は開発中のものです。 [sage] 2025/08/21(木) 15:57:31.56 ID:OYDY07jx(5/8) AAS
必要なのかどうか判らんが>>825の制御方法を回答するなら以下かな
操作可能キャラクターに現在操作権があるかどうかを判定するアクティブフラグを持たせる
操作はフラグが有効な場合にのみ処理する
衝突シグナルの発呼はフラグが有効な場合にのみ処理する
衝突シグナル発呼後にフラグを無効にする
衝突シグナル着呼時にフラグを有効にする
829(2): 名前は開発中のものです。 [] 2025/08/21(木) 17:37:16.04 ID:zThVp00O(2/3) AAS
isTouchActiveみたいなbool値でシグナルの受信を管理する必要があるのかと思ったらこれでもいけるらしい
ChatGPTにリファクタリングして貰ったらソースがかなり短くなった

外部リンク:pastebin.com

ソース冒頭のGameManagerはシングルトンとしてAutoLoadに設定、プロパティはactive_charのみ
このactive_charはゲーム内でアクティブなキャラを一意にする意図

プレイヤーノード構成
CharacterBody2D
├Area2D
│ └CollisionShape2D
└Sprite2D
どちらでも多重切り替えの対策をしていれば安全性は変わらない
作る人が作りやすい間違えにくい方式を選べば良い
現在のアクティブキャラを頻繁に知る必要があるなら>>829の方が良いと思う
>>828の場合は対象キャラクターの全件走査が必要になる
>>828のメリットはゲームマネージャ不要なので携わるクラスやファイルが少なくなる事かな
全件走査の件はグローバルクラス化して静的変数を持たせればゲームマネージャを用意せずとも同じ結果を得られる
やり方は色々存在する

尚現処理では2体以上のキャラクターと同時に衝突した場合の切り替え対象が不定となるので
優先順位が必要な場合は何らかの追加処理が必要
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.290s*