【軽量】godot engine【無料】 part4 (940レス)
上下前次1-新
840(1): 08/26(火)13:49 ID:WJT07pkb(1) AAS
じゃあ、おまえは何もできません、おまえ自身が無理だからです
出直してきてください
はい、次のワナビどうぞ
841: 生出白液 08/29(金)00:02 ID:511euTV9(1/2) AAS
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
842: 08/29(金)01:40 ID:VmXngAYr(1) AAS
>>840
お前Unity質問スレでもその先生ごっこやってたことあるだろ
滑ってんだよそのノリ
いちいちワナビ追っかけていって絡むのやめろ
843(1): 08/29(金)01:51 ID:NTpF3sfj(1) AAS
「子が移動後に壁にぶつかったら親に通知して消滅するコードに
子のy座標が800を超えたら1行目と同様の処理を追加したい」
"壁に接触している"事を判定しているのはif is_on_wall():の部分なのでここを変更する
"壁に接触している"または"y座標が800を超えている"とする
if is_on_wall() or position.y > 800.0:
こんなん?
844(2): 生出白液 08/29(金)21:55 ID:511euTV9(2/2) AAS
そのコードを加えてみましたが、Invalid assignment of property or key 'result' with value of type 'int' on a base object of type 'Window'.というエラーが出ました。このエラーの意味が全く分かりません教えてもらいたいです
845: 08/29(金)22:12 ID:US91n0Bz(1) AAS
煽りとか抜きにチャットAIに投げたほうが早いぞ
846: 08/29(金)22:48 ID:Zy5HkM5N(1/2) AAS
>>844
そのエラーはresultプロパティにアクセスしようとしたがプロパティが存在しないから発生している
>>843の修正を元には発生しない
想像に想像を重ねるとエラー文に出てくる"Window"はエラーを出したノードの親ノードを指している
if _on_wall():の次行のget_parent().result = 1が既出エラーを発生させる可能性がある
親ノードにぶら下がる子ノードだったならこのエラーにはならず親ノードの場合に発生する
修正以前にコードの親関係が正しくなくコードが機能する状態でないと思われる
修正前コードを動かすには孫ノードとコードが不足しているのでそれらの追加が必要
ノード構成は以下となるはず
Node2D (親コードextends Node2D配下のアタッチ先)
+CharacterBody2D (子コードextends CharacterBody2D配下のアタッチ先)
++CollisionShape2D
++Sprite2D (孫コードのアタッチ先※提示されていない)
自分もAIに聞いた方が応答速度が早くて良いと思うよ
847: 08/29(金)23:01 ID:Zy5HkM5N(2/2) AAS
想定が足りていなかった
CharacterBody2Dノードをブランチしてシーンとした場合に
修正後コードでこのシーンを「現在のシーンを実行」で動かすと>>844のエラーが発生する
本来親ノードがなければ動かないシーンをカレントシーンで動かした事が原因
正しく親ノードの配下としてCharacterBody2Dを配置する事
848(3): 生出白液 09/02(火)22:58 ID:E0WT+1Oc(1) AA×

849: 09/02(火)23:33 ID:HYRahreF(1/3) AAS
>>848
get_parent()とは一つ上のノードを取得する関数なので
図のPlayerでget_parent()を実行したならば結果はColorRectになる
なのでColorRectの子としてPlayerを配置するならがresult変数はColorRectが持っていなければエラーとなる
一回の実行で同じ_redayが二回呼ばれる事は考えにくい
print関数で表示した結果の後ろの数字はノードの固有番号なので違っているならばそれぞれのノードが存在している事になる
ツリー上にCharacterBody2Dが2つ存在していてそれぞれが同じコードが割り当てられていると推測する
この場合、図示されているCharacterBody2DではないCharacterBody2DはNode2Dの配下のはず
ルート直下のCharacterBody2Dを削除すればresultにアクセスできないエラーはなくなる
850: 09/02(火)23:45 ID:HYRahreF(2/3) AAS
>>848
>シンプルにChatgptの使い方が悪いかもしれないけどあまり使えなかったです
判らない事は幾ら考えても判らないので聞いてくれて構わないが
残念ながらこういう場では解答が貰える保証がない
なので独学で学習しているならAIの利用方法を習得するのが望ましい
もちろんAIが確実に正答を返してくれる訳ではないので判らなかったら質問を投げてくれてOK
しかし返ってくるかどうかいつ返ってくるかも判らない返答を待つのは効率が悪い
自分は使ってないので判らないが廃墟に近いここよりDiscordの方が活気があったりしないだろうか?
851: 09/02(火)23:49 ID:HYRahreF(3/3) AAS
後は英語力必要になるけどredditあたりか
どこでも同じだけどコミュニティのルールに沿った質問が出来ないと相手にされなくなるから
質問する際にはルールを覚える必要はあるね
852(1): 09/03(水)00:01 ID:jiI02xbM(1/4) AAS
>>848
少し間違っていた
自分:fish:<CharacterBody2D#29007807814>
親:root:<Window#28470936891>
親の親:<Object#null>
自分:fish:<CharacterBody2D#31323063660>
親:result:<Node2D#31272731991>
親の親:ColorRect:<ColorRect#31239177554>
このパターンだとColorRectの下にコードを持ったCharacterBody2Dは居ない
rootの下に配置されているのでこのツリーには存在していない
グローバルにCharacterBody2Dのコードを登録してはいまいか?
853: 09/03(水)11:39 ID:2H/FhQha(1/2) AAS
こういうやり取りのいいところは
ChatBOT使ったところでそいつができないことができるようになるわけじゃない、と確認できることだよな
こりゃあ、何年かかっても何もできないわけだわ
854: 09/03(水)12:00 ID:jiI02xbM(2/4) AAS
掲示板でもAIでも答えられる答えしか返らないので欲しい解答が得られる質問の仕方が判らないと先に進まないね
最初に提示されたコードでほぼ合っているので後少しの気付きを得られれば次に進めると思うんだな
コードレビューして基本的な考え方を学べると良いのだけれどそういう場を得られない人は大変よね
855: 09/03(水)12:29 ID:jiI02xbM(3/4) AAS
ノードの構造が変だと指摘されてノードから見える親を調べてる時点で有能に思う
埋め込んだコードが二回実行されるのが変だと気が付くのも有能
一度しか呼ばれない前提のコードが二回呼ばれているならば誰が呼び出しているかを探す事になる
取得した情報で自分自身の親情報が取れているのでどこにコードが存在しているかはおおよそ判る
ここで親がrootと表示されている事で自身が管理しているツリーに無いノードが存在している事が判る
GodotEngineの仕様を知っていればカレントツリーの上にrootがある事も判るのだけれど
初心者向け解説で触れているのは見かけないのでここは躓きポイント
root配下にカレントツリー以外がぶら下がる条件を知らないと更に躓く
そうなるパターンとしてはグローバルクラスが定義されている場合と
@toolなスクリプトが存在して勝手な振る舞いをしている場合
どちらの場合でも利用者が手を加えなければ勝手には発生しないので
設定を変えたりプラグインを導入していないかを確認する
856: 09/03(水)15:01 ID:JAFxBHMC(1) AAS
Discordにでも行けばいいのに、コードすらまともに貼れないここで長々と質問する意味が分からない
857: 09/03(水)15:08 ID:2H/FhQha(2/2) AAS
ぶっちゃけスパムレベルの質問だからね、追い出されたんだろ
こういう掃きだめ掲示板ならではよ
解決しようがしまいが誰も(本人も)困らないし
858(1): 生出白液 09/03(水)18:05 ID:F2t9mgCh(1) AAS
>>852
エラーの原因はグローバルにCharacterBody2Dのコードを登録していたからでした。教えてくれてありがとうございます。後これからはディスコードで質問していきたいと思います
859: 09/03(水)18:38 ID:jiI02xbM(4/4) AAS
>>858
解決したなら良かった、先は長いから程々で頑張れよ
860(1): 09/06(土)17:28 ID:jL8JB8c1(1) AAS
Area2Dノードを親にした物体を複製した後queue_free()で消したが衝突判定が残っていた。物体自体は見えないのに衝突判定だけ消えないことが起こるものですか?
861: 09/06(土)20:25 ID:hIKwuN7F(1) AAS
はい、そうです。
862: 09/06(土)21:05 ID:J6IH1IIs(1) AAS
ChatGPTで聞けば答えが出てくるようなレベルのことを人に聞くような人がまともなアプリ開発なんかできるの?
863: 09/06(土)21:34 ID:Cy3rYlNu(1) AAS
>>860
queue_free()はfree()をキューに入れる関数でその時点ではノードは消えていません
864: 09/14(日)16:40 ID:+FNV0YKb(1) AAS
チャットジーピーテーお金払わないと嘘ばかり教えてくるからな
865: 09/14(日)19:13 ID:qOx/PcAM(1) AAS
残念ながらお金を払っても嘘ばかり教えてくるぞ
866: 09/14(日)19:32 ID:XKuRbbQE(1) AAS
よさげなエロサンプル見せてこの続きは有料っつって金はらったら結局サンプルと同じ程度ものしかないみたいな
詐欺商売やないかヽ(`Д´)ノ
867: 09/16(火)06:32 ID:MGrSj3oL(1) AAS
いつのまにかGodot 4.5がリリースされた
contributorが400人を超えて規模が結構大きくなってきた
868: 09/16(火)07:00 ID:hyfiSgwN(1) AAS
変更内容が多くて項目一覧見てるだけで目が回った
869: 09/16(火)13:41 ID:MMr3FO17(1) AAS
LGBTかなんかで炎上したのはなんだったのかってくらい順調だな
上下前次1-新書関写板覧索設栞歴
あと 71 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.035s