【軽量】godot engine【無料】 part4 (926レス)
【軽量】godot engine【無料】 part4 http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
833: 名前は開発中のものです。 [sage] 2025/08/21(木) 19:31:45.99 ID:OYDY07jx AIが使えるとかなり捗るね 自分の上げた>>828方式だと発呼するのが一人だけなのが保証されているので複数による切り替えは発生しない >>829方式の場合はもうひと工夫が必要 これもやり方は色々あるけど一つ方法を挙げておくと 即時にアクティブキャラクターを更新するのが問題の発生原因なので更新処理を遅延させる call_deferredを使用すると現フレームと次フレームの間に処理が行われるのでこれを利用する より具体的にはアクティブキャラクター更新処理を関数化してcall_deferredで呼ぶ 自分で使うならこう書くんだけど行儀が良くないコードなので実用するなら適宜直してね (func():gm.active_char = other_char).call_deferred() http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/833
834: 名前は開発中のものです。 [] 2025/08/22(金) 12:59:11.02 ID:5H9qw/cT ありがとう じっくり読んで作るナリよ やっぱりアクティブキャラだけシグナルを発する方式が安全なんすかね? http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/834
835: 名前は開発中のものです。 [sage] 2025/08/22(金) 13:20:20.86 ID:hykeI/+Z 今回上がった>>828,829どちらでも多重切り替えの対策をしていれば安全性は変わらない 作る人が作りやすい間違えにくい方式を選べば良い 現在のアクティブキャラを頻繁に知る必要があるなら>>829の方が良いと思う >>828の場合は対象キャラクターの全件走査が必要になる >>828のメリットはゲームマネージャ不要なので携わるクラスやファイルが少なくなる事かな 全件走査の件はグローバルクラス化して静的変数を持たせればゲームマネージャを用意せずとも同じ結果を得られる やり方は色々存在する 尚現処理では2体以上のキャラクターと同時に衝突した場合の切り替え対象が不定となるので 優先順位が必要な場合は何らかの追加処理が必要 http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/835
836: 名前は開発中のものです。 [] 2025/08/22(金) 19:05:13.94 ID:5H9qw/cT ありがとう 勉強がてら、フィルタリングでやってみるか http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/836
837: 名前は開発中のものです。 [] 2025/08/25(月) 19:24:52.64 ID:pgacrMvG パッパとRPG造りたいナリ http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/837
838: 名前は開発中のものです。 [sage] 2025/08/26(火) 07:36:55.38 ID:jvaDPhtX そういうあなたにぴったりなゲームエンジンがカドカワさんからでてますよ・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/838
839: 名前は開発中のものです。 [] 2025/08/26(火) 09:16:02.52 ID:QxOlVIen あーいうの余計むずく感じるんで無理 http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/839
840: 名前は開発中のものです。 [sage] 2025/08/26(火) 13:49:17.12 ID:WJT07pkb じゃあ、おまえは何もできません、おまえ自身が無理だからです 出直してきてください はい、次のワナビどうぞ http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/840
841: 生出白液 [] 2025/08/29(金) 00:02:13.70 ID:511euTV9 extends CharacterBody2D var gravity = 980 var jump_velocity = -600 var p = 2 # ジャンプ回数 @onready var sprite = get_node("rotation_fish") # 子ノード(回転魚など) func _physics_process(delta): velocity.y += gravity * delta if is_on_floor(): p = 2 if Input.is_action_just_pressed("jump") and p > 0: velocity.y = jump_velocity p -= 1 if sprite: sprite.call("receive_message", p) # 回転に通知 move_and_slide() if is_on_wall(): get_parent().result = 1 get_parent()._result() queue_free() このコードに物体のy座標が800を超えたら get_parent().result = 1 get_parent()._result() queue_free() と同じような実行をするコードを追加で作ってもらいたいです。親ノードは下のようです extends Node2D var result = 0 # 状態管理用 func _ready(): $Label.visible = false # 最初は非表示 func _result(): if result == 1: $Label.text = "finish" $Label.visible = true else: $Label.visible = false http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/841
842: 名前は開発中のものです。 [sage] 2025/08/29(金) 01:40:24.24 ID:VmXngAYr >>840 お前Unity質問スレでもその先生ごっこやってたことあるだろ 滑ってんだよそのノリ いちいちワナビ追っかけていって絡むのやめろ http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/842
843: 名前は開発中のものです。 [sage] 2025/08/29(金) 01:51:57.67 ID:NTpF3sfj 「子が移動後に壁にぶつかったら親に通知して消滅するコードに 子のy座標が800を超えたら1行目と同様の処理を追加したい」 "壁に接触している"事を判定しているのはif is_on_wall():の部分なのでここを変更する "壁に接触している"または"y座標が800を超えている"とする if is_on_wall() or position.y > 800.0: こんなん? http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/843
844: 生出白液 [] 2025/08/29(金) 21:55:18.53 ID:511euTV9 そのコードを加えてみましたが、Invalid assignment of property or key 'result' with value of type 'int' on a base object of type 'Window'.というエラーが出ました。このエラーの意味が全く分かりません教えてもらいたいです http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/844
845: 名前は開発中のものです。 [sage] 2025/08/29(金) 22:12:20.66 ID:US91n0Bz 煽りとか抜きにチャットAIに投げたほうが早いぞ http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/845
846: 名前は開発中のものです。 [sage] 2025/08/29(金) 22:48:50.42 ID:Zy5HkM5N >>844 そのエラーはresultプロパティにアクセスしようとしたがプロパティが存在しないから発生している >>843の修正を元には発生しない 想像に想像を重ねるとエラー文に出てくる"Window"はエラーを出したノードの親ノードを指している if _on_wall():の次行のget_parent().result = 1が既出エラーを発生させる可能性がある 親ノードにぶら下がる子ノードだったならこのエラーにはならず親ノードの場合に発生する 修正以前にコードの親関係が正しくなくコードが機能する状態でないと思われる 修正前コードを動かすには孫ノードとコードが不足しているのでそれらの追加が必要 ノード構成は以下となるはず Node2D (親コードextends Node2D配下のアタッチ先) +CharacterBody2D (子コードextends CharacterBody2D配下のアタッチ先) ++CollisionShape2D ++Sprite2D (孫コードのアタッチ先※提示されていない) 自分もAIに聞いた方が応答速度が早くて良いと思うよ http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/846
847: 名前は開発中のものです。 [sage] 2025/08/29(金) 23:01:21.73 ID:Zy5HkM5N 想定が足りていなかった CharacterBody2Dノードをブランチしてシーンとした場合に 修正後コードでこのシーンを「現在のシーンを実行」で動かすと>>844のエラーが発生する 本来親ノードがなければ動かないシーンをカレントシーンで動かした事が原因 正しく親ノードの配下としてCharacterBody2Dを配置する事 http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/847
848: 生出白液 [] 2025/09/02(火) 22:58:19.74 ID:E0WT+1Oc ColorRect(ルート) └── Node2D(result 変数あり) ├── Label └── Player(CharacterBody2D)ここにエラーが出たコードが書かれている result変数が書いてあるNode2Dを親、Labelノードが子のコードのシーンがあって、それを親にし、Playerシーンを子にした状態で同じようなエラーが発生した。 Chatgptに詳しく聞いてみたが解決しなかった。ここでPlayerノードにfunc _ready(): print("自分:", self) print("親:", get_parent()) print("親の親:", get_parent().get_parent()) を書いて実行すると 自分:fish:<CharacterBody2D#29007807814> 親:root:<Window#28470936891> 親の親:<Object#null> 自分:fish:<CharacterBody2D#31323063660> 親:result:<Node2D#31272731991> 親の親:ColorRect:<ColorRect#31239177554> と出た。2回実行されてそれぞれ違う結果になった理由が分からなかった。シンプルにChatgptの使い方が悪いかもしれないけどあまり使えなかったです http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/848
849: 名前は開発中のものです。 [sage] 2025/09/02(火) 23:33:43.35 ID:HYRahreF >>848 get_parent()とは一つ上のノードを取得する関数なので 図のPlayerでget_parent()を実行したならば結果はColorRectになる なのでColorRectの子としてPlayerを配置するならがresult変数はColorRectが持っていなければエラーとなる 一回の実行で同じ_redayが二回呼ばれる事は考えにくい print関数で表示した結果の後ろの数字はノードの固有番号なので違っているならばそれぞれのノードが存在している事になる ツリー上にCharacterBody2Dが2つ存在していてそれぞれが同じコードが割り当てられていると推測する この場合、図示されているCharacterBody2DではないCharacterBody2DはNode2Dの配下のはず ルート直下のCharacterBody2Dを削除すればresultにアクセスできないエラーはなくなる http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/849
850: 名前は開発中のものです。 [sage] 2025/09/02(火) 23:45:42.11 ID:HYRahreF >>848 >シンプルにChatgptの使い方が悪いかもしれないけどあまり使えなかったです 判らない事は幾ら考えても判らないので聞いてくれて構わないが 残念ながらこういう場では解答が貰える保証がない なので独学で学習しているならAIの利用方法を習得するのが望ましい もちろんAIが確実に正答を返してくれる訳ではないので判らなかったら質問を投げてくれてOK しかし返ってくるかどうかいつ返ってくるかも判らない返答を待つのは効率が悪い 自分は使ってないので判らないが廃墟に近いここよりDiscordの方が活気があったりしないだろうか? http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/850
851: 名前は開発中のものです。 [sage] 2025/09/02(火) 23:49:54.24 ID:HYRahreF 後は英語力必要になるけどredditあたりか どこでも同じだけどコミュニティのルールに沿った質問が出来ないと相手にされなくなるから 質問する際にはルールを覚える必要はあるね http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/851
852: 名前は開発中のものです。 [sage] 2025/09/03(水) 00:01:51.40 ID:jiI02xbM >>848 少し間違っていた 自分:fish:<CharacterBody2D#29007807814> 親:root:<Window#28470936891> 親の親:<Object#null> 自分:fish:<CharacterBody2D#31323063660> 親:result:<Node2D#31272731991> 親の親:ColorRect:<ColorRect#31239177554> このパターンだとColorRectの下にコードを持ったCharacterBody2Dは居ない rootの下に配置されているのでこのツリーには存在していない グローバルにCharacterBody2Dのコードを登録してはいまいか? http://mevius.5ch.net/test/read.cgi/gamedev/1722379579/852
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 74 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s