[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/22 01:54 / Filesize : 255 KB / Number-of Response : 1015
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【軽量】godot engine - part2



1 名前:名前は開発中のものです。 [2021/04/30(金) 13:03:47.04 ID:cptRhreJ.net]
https://godotengine.org/
https://www.reddit.com/r/godot/

godotでクソゲー作ろうぜ!!

770 名前:名前は開発中のものです。 [2024/01/19(金) 13:29:25.74 ID:gidHXOpm.net]
ノードの取得方法なんですが、get_treeはシーンツリー全体を取得ということですか?
つまり、そのプロジェクトに含まれるルートのシーンを最上位とした、シーン全体の取得

get_tree().get_root()

とすればget_rootは1つのシーンの最上位という意味合いになるんでしょうか
ここは調べてもわからなかった

771 名前:名前は開発中のものです。 mailto:sage [2024/01/19(金) 20:30:52.73 ID:RNi0IsDv.net]
Godot Japan User Community
https://twitter.com/godot_jp
ここでDiscordサーバーあるから分からん事聞きたいなら入ってみたらいいんじゃない?
(deleted an unsolicited ad)

772 名前:名前は開発中のものです。 [2024/01/19(金) 21:38:27.19 ID:uj7WVGXu.net]
>>750
遅ればせながら、本当にありがとう上手くいきました!
恥ずかしながらリファレンスをよく読んでいなかったのと、オーナーという概念がある事、そしてスクリプトはオーナーを持たない事を初めて知った(◇selfでadd childする目的は…?)
こんなスパゲティ質問をサラッと答えられるイケメンになりたい

773 名前:名前は開発中のものです。 [2024/01/19(金) 21:48:07.01 ID:38trQaVj.net]
>>760
NodePathクラスのページに書いてある

^"/root" # Equivalent to get_tree().get_root().
^"/root/Main" # If your main scene's root node were named "Main".

rootはGUIに表示されているシーンのノードの1段上の階層にあってゲームのウィンドウに相当する

774 名前:名前は開発中のものです。 [2024/01/20(土) 11:23:55.84 ID:xSS/e+g+.net]
tree→root→シーンの一番上のノード、
といった構造ですよねおそらく
treeはシーンツリーのことで、シーン同士の関係図みたいなものだと理解しています
各々のシーンが持つウインドウがルートですね

この辺の図とかどこかにありますかね?

775 名前:名前は開発中のものです。 mailto:sage [2024/01/22(月) 11:28:10.04 ID:+KGs8YKc.net]
4のドキュメントがそろうまで1年くらいスクリプトだけでゲーム作ってたけど、
戻って感じたがGodotこんなに快適だったのか

視覚的にスプライトシートから1セル切り出したり、
簡単にカメラや衝突判定が実装できるだけで天国だよ
1ドットの点やテキスト表示するだけでやたら手間がかかる短所など今考えれば些細な問題だわ

776 名前:名前は開発中のものです。 [2024/01/22(月) 17:05:16.43 ID:E8G3DP92.net]
シンプルでいいよねunityは操作覚えるだけで大変だった

777 名前:名前は開発中のものです。 mailto:sage [2024/01/22(月) 19:06:35.79 ID:iEOSPRUj.net]
そうなんだシンプルなんだよ
今まで商業作品作るわけでもないのに要りもしない膨大な機能を駆使しなきゃ損だと思ってややこしく考えすぎてた
ファンタジーコンソール+αぐらいの気持ちで使う方がうまく行く気がする

個人的にはコリジョン系ノードと同じくらいTimerノードが手放せないので
諸々のゲームエンジンに搭載して欲しい

778 名前:名前は開発中のものです。 mailto:sage [2024/01/23(火) 09:50:02.10 ID:Fo55SsA5.net]
ある程度制限あるけどフリーでswitch向け出力できるようになるって



779 名前:名前は開発中のものです。 [2024/01/23(火) 10:18:00.93 ID:GewL3mCg.net]
しかし、ゲーム完成しない、、、
完成させる力が足りない

780 名前:名前は開発中のものです。 mailto:sage [2024/01/23(火) 11:02:00.53 ID:cjSyBROw.net]
ゲームって何だかんだプログラム組むより素材集めがダルいよね
イメージと違ったり欲しい物がなかったりすると自作する必要出てくるし

781 名前:名前は開発中のものです。 mailto:sage [2024/01/23(火) 11:31:15.38 ID:qDAbGc4B.net]
>>770
ほんとそれ
プログラミングは楽しすぎる

782 名前:名前は開発中のものです。 [2024/01/23(火) 11:35:16.29 ID:GewL3mCg.net]
形とか色とか制限してる
ブロックだけ、色は黒だけとか

あとから差し替えられるし

783 名前:名前は開発中のものです。 [2024/01/23(火) 14:24:46.63 ID:nuTPDLfr.net]
エンジニア寄りの人がゲーム作ろうとするとアセットで詰まるんよな
プログラム興味ないけど絵描くの好きみたいな人のほうがツクールやノベルツールでどんどんゲーム完成させるっていうね

784 名前:名前は開発中のものです。 [2024/01/23(火) 14:39:07.82 ID:GewL3mCg.net]
そうなんか

785 名前:名前は開発中のものです。 [2024/01/23(火) 14:57:51.55 ID:TUdhp1iX.net]
ノベルゲーとかツクールのシステムまんまのゲームならUI用意されてるからこだわりなければそのまま使えるけど自分でUI作ろうとするとほぼお手上げ状態
ゲームに合う素材探しもめんどくさいし見やすいUIの組み方もわからない

786 名前:名前は開発中のものです。 [2024/01/23(火) 15:06:36.98 ID:GewL3mCg.net]
まあデザイナーの才能ないからすべてオリジナルにする必要ないし、オリキャラだけオリジナルとかね?

787 名前:名前は開発中のものです。 [2024/01/23(火) 15:49:20.27 ID:nuTPDLfr.net]
素材間の絵柄やクオリティに統一感が必要だし
自キャラ、敵キャラ、背景、UI、エフェクト、タイトルロゴetc
それらすべてが調和してる必要があるので、既存の素材を使うと調整が大変だよ

788 名前:名前は開発中のものです。 [2024/01/24(水) 06:06:16.67 ID:ePb8v5e+.net]
気分転換としてバックルームのモデリングしてる



789 名前:名前は開発中のものです。 [2024/01/24(水) 06:06:55.19 ID:ePb8v5e+.net]
>>777
そうだね
ただ完成しないよりはいいと思う

790 名前:名前は開発中のものです。 [2024/01/24(水) 13:06:50.19 ID:ePb8v5e+.net]
ゲーム開発っって当初の構想を脱線しないほうがいいよね
あれもいい、これもいい となりがち
より良いと思えても後回しかな

791 名前:名前は開発中のものです。 mailto:sage [2024/01/24(水) 15:09:37.21 ID:9CQ/w45K.net]
ボタンをクリックしたらラベルの文字を変えるって処理はできたのですが
同時に画像を変更する(ノベルゲーのキャラの立ち絵の表情を変える)って
処理はどの辺のチュートリアル読めばできるようになるんでしょうか?
シーンを作って呼び出すのがいいのか、スクリプト(今はこっち)でやればいいのかもわかりません

792 名前:名前は開発中のものです。 [2024/01/24(水) 15:25:53.66 ID:ePb8v5e+.net]
>>781
シグナルじゃないですか?

793 名前:名前は開発中のものです。 [2024/01/24(水) 18:21:11.04 ID:9CQ/w45K.net]
>>782
レスありがとうございます!
シグナルっぽいので勉強してみます。

794 名前:名前は開発中のものです。 mailto:sage [2024/01/25(木) 15:23:37.32 ID:77Oz3RL7.net]
中学生頑張ってるな
https://booth.pm/ja/items?tags%5B%5D=Godot+Engine

795 名前:名前は開発中のものです。 mailto:sage [2024/01/25(木) 21:16:25.06 ID:kXZori1n.net]
Resourceクラスを継承したオリジナルのstatus.tresを作成し、それをベースキャラクターノードの派生ノードに保持させる事で擬似的なコンポーネントパターンのようなものを実現したと思っていました
しかしこれらは設計として非常に便利なのですが、保持している変数が同じ値を参照してしまいspankbangます
そのせいで別々に実体化した敵キャラが同時に死んだり、同じタイミングでqueue_free()
されてしまい困ります
これを防ぐにはどうしたら良いのでしょうか……?
Resourceを個別に実体化する等はは可能なのでしょうか?
どうか教えていただきたいです

簡単な設計としては以下のようなものです
stats.tres
∟var hit-point
∟func Damage()→もしhit-pointがゼロになったらHP-is-ZEROをemit
∟signal HP-is-ZERO

Enemy.tscn
∟@export var stats:Resource→インスペクタ上でstats.tresをドラッグドロップ
∟func _ready()→ HP-is-ZEROをPopにコネクト
∟func Pop()→自身をqueue_free()

変数のヒットポイントは全てのEnemyインスタンスで共通してしまい、シングルトンを参照したみたいになってしまいます……orz
おそらくシグナルも同時に飛ばされている筈……

796 名前:名前は開発中のものです。 mailto:sage [2024/01/25(木) 22:52:46.31 ID:axJhZZr6.net]
え?リソースを直接書き換えてるってこと?
定数データとして扱うか、
敵の数分リソース作るかじゃないの

797 名前:名前は開発中のものです。 [2024/01/26(金) 00:59:46.32 ID:d6qv4EnY.net]
インスペクターでstatus.tresクリックしてResourceのresource_local_to_sceneにチェックいれてみるとか?

798 名前:名前は開発中のものです。 mailto:sage [2024/01/26(金) 09:31:17.61 ID:pEZdi1Q8.net]
>>787
この方法でズバっと解決しました!
助かりますありがとうございます😭

色々な方法を考えていただいた方々にもお礼申し上げます🙇



799 名前:名前は開発中のものです。 [2024/01/26(金) 13:05:50.93 ID:xQgIMHCZ.net]
逆に見た目から作るのもありなのかな?
ホワイトボックスだと面白くないものな

800 名前:名前は開発中のものです。 mailto:sage [2024/01/26(金) 17:31:23.00 ID:V6GPPkOR.net]
>>784
中学生がこんなの書いてるのか、すごいな・・・
ペーペーだから買ってみようかな

801 名前:名前は開発中のものです。 [2024/01/26(金) 19:17:55.73 ID:4q31+VlN.net]
ゲームのルールが思いつかない

802 名前:名前は開発中のものです。 mailto:sage [2024/01/27(土) 03:19:51.12 ID:iAyWuXN8.net]
一般書にない様なニッチな本とか技術書展では結構出てるからBOOTHはマイナー技術関連の漁り場にしてる

803 名前:名前は開発中のものです。 [2024/01/27(土) 06:26:37.52 ID:23WZBn1j.net]
確かに凄いが初心者向けの本でSwitchでゲームが動くってのは誇張表現じゃないかなと思うな
こないだ本屋でGodotの解説書が売っているの見たし流れ来てるな

804 名前:名前は開発中のものです。 [2024/01/27(土) 06:39:03.77 ID:JYsp1BmQ.net]
clamp関数とかprint関数とか、どの言語にでもあるような基礎的な関数?ってのは、リファレンスにはないのが普通なんですかね?

805 名前:名前は開発中のものです。 [2024/01/27(土) 07:13:19.05 ID:23WZBn1j.net]
リファレンスとはどこの何を指して言ってる?ここに書いてあるぞ
https://docs.godotengine.org/ja/4.x/index.html
ゲームエンジンだから何でも揃っている訳でもないな

806 名前:名前は開発中のものです。 [2024/01/27(土) 09:21:44.25 ID:JYsp1BmQ.net]
低スペには最高のエンジンだね
 ありがたい

>>795
そうです 公式のリファレンスにないかなと

807 名前:名前は開発中のものです。 mailto:sage [2024/01/27(土) 09:37:24.12 ID:JTv+Mbby.net]
>>796
https://docs.godotengine.org/ja/4.x/classes/class_@globalscope.html
https://docs.godotengine.org/ja/4.x/classes/class_%40gdscript.html

808 名前:名前は開発中のものです。 [2024/01/27(土) 09:51:29.91 ID:23WZBn1j.net]
ここに書いてある
https://docs.godotengine.org/ja/4.x/classes/class_%40globalscope.html
「はじめに」にはこう書かれている
https://docs.godotengine.org/ja/4.x/about/introduction.html#organization-of-the-documentation
>クラスリファレンスのドキュメントがエンジンのスクリプトエディター内から直接閲覧できるようになりました。
>すべてのクラス、関数、シグナル等の情報をここで見つけることができます。
[ヘルプを検索]を選べば検索ウインドウが開く
ショートカットはF1またはキーワード上でCtrl+Middle



809 名前:名前は開発中のものです。 [2024/01/27(土) 09:53:08.51 ID:23WZBn1j.net]
間違えたMiddleでなくてLeftだ

810 名前:名前は開発中のものです。 [2024/01/27(土) 10:02:27.75 ID:JYsp1BmQ.net]
>>797
ありがとう
こういうのはエンジン特有の関数でもないって扱いなんですかね

811 名前:名前は開発中のものです。 [2024/01/27(土) 13:26:22.03 ID:wV1JVaXK.net]
この手の数学関数とかはどこでも必須なのであるよ

812 名前:名前は開発中のものです。 [2024/01/27(土) 13:51:11.15 ID:JYsp1BmQ.net]
ありがとう 頑張って完成させるど クソゲーを

813 名前:名前は開発中のものです。 [2024/01/27(土) 16:39:57.30 ID:JYsp1BmQ.net]
godotに戻ってきて良かった
軽いのは正義
開発へのハードルが低くなる

814 名前:名前は開発中のものです。 mailto:sage [2024/01/27(土) 18:57:58.89 ID:iAyWuXN8.net]
エディターの構成とかスクリプトとの連携とか全体的にGodotの方が洗練されてるんだよな
Unityはデファクトスタンダードでアセット類が多いってだけで作り的には大分とっ散らかってる

815 名前:名前は開発中のものです。 mailto:sage [2024/01/28(日) 00:05:29.05 ID:ikqtEjYO.net]
キャラクターボディとスタティックボディの衝突シグナルはどうやれば取れますか?
ドキュメントを探してみましたがそれらしいものがリジッドボディしか見つからず困っています

816 名前:名前は開発中のものです。 mailto:sage [2024/01/28(日) 00:31:53.80 ID:gcvmSnRI.net]
>>805
シグナルじゃなくてmove_and_なんとかの返り値や関連メソッドで判別する

817 名前:名前は開発中のものです。 mailto:sage [2024/01/28(日) 00:51:02.57 ID:ikqtEjYO.net]
>>806
ありがとう 無事見つかりました

818 名前:名前は開発中のものです。 [2024/01/28(日) 02:59:52.94 ID:JWmTbwcH.net]
他ツールでも結局最終的に頼りにしてるのは公式ドキュメントのサンプルコードな自分
個人サイトとかだと参考にはなれど権利とかライセンスがとかめんどくさくてさあ



819 名前:名前は開発中のものです。 [2024/01/28(日) 05:59:32.89 ID:pEcrIiHG.net]
get_tree().paused = trueでポーズ画面作ってるんですが、get_tree().paused = falseで戻せないです
入力受付なくなるのでプロセスが止まっているらしいです
入力も受け付けなくなる感じ?

820 名前:名前は開発中のものです。 mailto:sage [2024/01/28(日) 06:15:45.02 ID:TmRS1aaH.net]
_process()は止まるけど_input()側で入力受付出来なかったっけ

func _input(event):
 if event.is_action_pressed(入力キー):
  get_tree().paused = !get_tree().paused

821 名前:名前は開発中のものです。 [2024/01/28(日) 06:22:43.03 ID:pEcrIiHG.net]
ありがとうございます
ポーズ画面作る場合はpausedを使うのでいいんですかね?

extends Node2D


# Called when the node enters the scene tree for the first time.
func _ready():
get_tree().paused = true

# Called every frame. 'delta' is the elapsed time since the previous frame.
func _input(event):
if Input.is_key_pressed(KEY_A):
get_tree().paused = !get_tree().paused
print("release")

今試したんですが、インプットでも受け付けないみたいです

822 名前:名前は開発中のものです。 mailto:sage [2024/01/28(日) 06:56:49.98 ID:TmRS1aaH.net]
>>811
すまねえこういう事だった
ノードのProcessModeがWhenPausedかAlwaysじゃなきゃ_processも_inputも止まると
https://docs.godotengine.org/en/stable/tutorials/scripting/pausing_games.html

ちゃんと一時停止の例まで載ってた

823 名前:名前は開発中のものです。 [2024/01/28(日) 09:59:31.41 ID:pEcrIiHG.net]
>>812
ポーズモードという仕組みあるんすね
ありがとうございました
リファレンス避けてた自分が悪かたです

824 名前:名前は開発中のものです。 [2024/01/28(日) 12:20:57.94 ID:pEcrIiHG.net]
gptくんグーグルより的確すぎる

825 名前:名前は開発中のものです。 [2024/01/28(日) 13:07:14.42 ID:pEcrIiHG.net]
func _on_body_entered(body):
fail_text.visible = true

get_tree().paused = true
await(get_tree().create_timer(2).timeout)



get_tree().reload_current_scene()
get_tree().paused = false

衝突したときにリトライ処理をさせたいのですが、こういうコードの書き方だとシーンがリロードされたあとにbodyenterdが呼ばれるので、エラーになりますよね。
シーンがリロードされる前にポーズモードを戻したら解決ですが、シーンりろーどで単純にbodyenterd関数が破棄されると考えればいいんでしょうか?
シーン周りが難しい、、、

826 名前:名前は開発中のものです。 [2024/01/28(日) 17:01:51.13 ID:pEcrIiHG.net]
4.21になってからノード追加するときとか数秒もたつくな

827 名前:名前は開発中のものです。 [2024/01/28(日) 17:51:17.28 ID:pEcrIiHG.net]
スクリプトのついていないノードを複数取得して、同じ回転を適用するみたいなことは出来ないかな?
これは別シーンで作って呼び出す形でやるのかな?プレファブ的な

828 名前:名前は開発中のものです。 [2024/01/28(日) 22:35:32.81 ID:YtecBqKa.net]
Object.get_script でnullが返るノードを処理すればいいけど
グループに入れておい一括処理すればいいんでね



829 名前:名前は開発中のものです。 [2024/01/29(月) 05:49:50.26 ID:Egx9C970.net]
>>818
ありがとう
多分一般的なやり方じゃないですよね
同じものを使いまわしたいならプレハブ化(シーン)するのが一番ですよね

830 名前:名前は開発中のものです。 [2024/01/29(月) 05:57:27.51 ID:Egx9C970.net]
動きは共通で、大きさだけ変えたいなんて場合は、スクリプトだけ共通にすればいい感じだね
理解

831 名前:名前は開発中のものです。 mailto:sage [2024/01/29(月) 11:11:13.53 ID:rbb+bJBP.net]
スクリプトからインスタンス化すると2つ目以降のノード名がへんてこになるからどうやって取得したもんかと思ってたけど
グループで行けたわ、なるほどありがとう

832 名前:名前は開発中のものです。 [2024/01/29(月) 16:55:20.19 ID:Egx9C970.net]
ゲームエンジンってどれも似たようなもんかな
将来、ユニティに戻るかもしれんし

今は軽さ、手軽さ重視
pcもちょい古いしな(*´ω`*)

833 名前:名前は開発中のものです。 [2024/01/29(月) 19:48:28.24 ID:Egx9C970.net]
godotってノードの一時的な無効化って出来ないのかな?
目玉マーク押すと非表示にはなるけど、コリジョンとか残ってるし

834 名前:名前は開発中のものです。 [2024/01/30(火) 02:03:18.66 ID:qihJ4G8z.net]
基本的には似たようなもん
覚えた要素がアップデートで変わるだけで混乱する人も居るので人による

835 名前:名前は開発中のものです。 [2024/01/30(火) 10:12:53.04 ID:94z45r+P.net]
>>823
目玉マークは視覚的に消すだけなんだね
コリジョンなんかの機能を消すには、プロセスのdisableか


>>824

どうも

836 名前:名前は開発中のものです。 [2024/01/30(火) 12:17:23.37 ID:94z45r+P.net]
動く床と壁粘着ってけっこうめんどいな
動く方向が同じだとひっついてトレなくなる

837 名前:名前は開発中のものです。 [2024/02/01(木) 10:46:34.11 ID:d1tWUBD1.net]
エラーしたコード書くとウインドウがフリーズするけども、いちいち閉じるのが面倒なんですが、unityのようにエラーがあったらプレイ出来ないような設定にできますかね?

838 名前:名前は開発中のものです。 [2024/02/01(木) 13:03:53.68 ID:RbvII5uE.net]
状況が判らないなエラーコード書いたらハイライト表示されてフリーズはしないが



839 名前:名前は開発中のものです。 [2024/02/01(木) 15:11:31.28 ID:d1tWUBD1.net]
親ノードのスクリプトから子ノードを取得して、子ノード(rigidbody2d)のメソッドを使いたいのですが、この場合はオートコンプリートは出ないものですか?(apply_impulse)
子ノードにスクリプトつけて、そこからなら効くんですが

>>828
プレイ画面のことでした
エディターのエラーを見て実行しなければいいだけなんですけどもね

840 名前:名前は開発中のものです。 [2024/02/01(木) 15:57:12.68 ID:RbvII5uE.net]
ノードをget_nodeで取得していると仮定するとこうかな
var node = get_node(path) as RigidBody2D

エラーがあっても可能な限り止まらないで動作させるポリシーらしいので
動かす動かさないは利用者に委ねられるのでしょう

841 名前:名前は開発中のものです。 mailto:sage [2024/02/01(木) 19:13:23.54 ID:wFSVR3t/.net]
みんなgodotでシコシコどんなゲーム作ってるん?
ちなみに俺は何も作ってない

842 名前:名前は開発中のものです。 [2024/02/01(木) 19:51:19.77 ID:d1tWUBD1.net]
>>830
その書き方でいけました
しかし、readyの中だと出るのにprocessの中だとでません
これって正常な仕様なんでしょうか?

843 名前:名前は開発中のものです。 mailto:sage [2024/02/01(木) 20:58:13.75 ID:2YEqIkXl.net]
var a : RigidBody2D
こうじゃないの
ダックタイピングしないときは型は書いた方がいい、可読性が全然違う

844 名前:名前は開発中のものです。 [2024/02/01(木) 21:13:34.80 ID:Fw0MlK/N.net]
短くしたかったので一行に纏めたのが良くなかった
宣言と初期設定と使用が分かれるならこんな感じ
_readyの中で型指定しても_processからは見えないから上位で型指定する
var node:RigidBody2D
func _ready()
node = get_node(path)
func _process(_delta):
node.apply_impulse(impuls)

845 名前:名前は開発中のものです。 [2024/02/01(木) 22:23:33.00 ID:9xF8Tfdc.net]
>>831
寒いからやってない
ローグライクゲームのダッシュって実装がめんどくさいな

846 名前:名前は開発中のものです。 mailto:sage [2024/02/02(金) 00:02:58.39 ID:csXE6Gch.net]
自分はreadyの中でよそのシーンをインスタンス化しても何故かシーンツリーに登録されないから
だんだんready使わなくなったなあ
readyは全ノード読み込み済みの最初のアップデートと云うけれど、なんか挙動が掴み切れないというか

847 名前:名前は開発中のものです。 [2024/02/02(金) 01:00:55.38 ID:1cSrS8bV.net]
多分ノードツリーを変更する場合はcall_deferredを挟むのと良いのではないかな?知らんけど

848 名前:名前は開発中のものです。 mailto:sage [2024/02/02(金) 01:57:44.07 ID:csXE6Gch.net]
>>837
こんな感じに書き換えたら行けましたぞ
ありがとう!
func _ready():
node = node_scene.instaniate()
get_tree().root.call_deferred("add_child, node)

ちなみにルートにぶら下げないで、単に
func _ready():
node = node_scene.instaniate()
add_child(node)
って書いても無事にインスタンス化された
ルートの準備okなタイミングがスクリプトより遅いとかそんな感じなのかな



849 名前:名前は開発中のものです。 [2024/02/02(金) 02:19:14.30 ID:1cSrS8bV.net]
root配下の全ノードを処理している最中にノードの変更があった場合にどうするのが正しいのか?
ノード変更のタイミングによってノードがあったりなかったりすると不安定な挙動になる
なので確実に_readyや_process等のノード処理の完了後に動作させる為にcall_deferredを使う
add_child(node)で動くのはたまたまな可能性があるのでcall_deferredお勧め

850 名前:名前は開発中のものです。 [2024/02/02(金) 02:27:59.11 ID:1cSrS8bV.net]
ソースを見てないので推測だが一般的にツリーノードは再帰処理で回しているはず
root直下のノード群は最初に取得済となって後から追加しても無視されると思われる

851 名前:名前は開発中のものです。 [2024/02/02(金) 05:57:16.86 ID:KtCPrk0G.net]
>>834
ありがとう
自動型つけってこういうデメリット?があるんですね。自動で取得したノードの型まで取ってくれるわけではないのはなぜなんでしょうか。

あと、型つけ忘れたりありますが、gdscriptで型付け強制出来ますかね

852 名前:名前は開発中のものです。 mailto:sage [2024/02/02(金) 11:21:24.43 ID:HJWQqSOJ.net]
>>835
ダッシュって次の曲がり角までスキップ(早回し?)するアレ?
ローグライクって周りのマス参照したりターン制御したりダンジョン自動生成したり複雑だよな
俺も作ってみるか

853 名前:名前は開発中のものです。 [2024/02/02(金) 13:26:01.70 ID:1cSrS8bV.net]
>>841
ノードの型は実行時に取得するまで判らないので編集時はコードから判断される
型指定は宣言時に自分で行う
宣言時に初期設定も終わらせるなら
var rigidbody := get_node(path) as RigidBody2D
で宣言時の型指定を省略できる

付け忘れ対策はlintの様な外部ツールを使うしかないと思う
便利機能安全機構が増えるほどプログラムサイズは大きくなり処理は重くなる
GodotEngineは軽量な点が魅力なので標準でなくて構わないと自分は思う

854 名前:名前は開発中のものです。 mailto:sage [2024/02/02(金) 13:56:07.61 ID:SAYqJfSZ.net]
>>843
調べたらプロジェクト設定 debug/gdscript/warnings/untyped_declaration を errorに設定するとエラーになるっぽい
使うならエディタ設定の型ヒントをオンにしたほうが良さそう
他にも使えそうな警告がいっぱいあった

855 名前:名前は開発中のものです。 [2024/02/02(金) 14:04:57.68 ID:1cSrS8bV.net]
エディタの設定だと思ってプロジェクトの方見てなかったありがとう

856 名前:Oは開発中のものです。 [2024/02/02(金) 14:30:28.27 ID:KtCPrk0G.net]
>>843
明治してやらないと駄目なんですね そう受け入れます
untyped decralationを設定したらそうなりました

ありがとう(*´ω`*)
unityと併用すること考えたら型付けしといたほうがいいですね

857 名前:名前は開発中のものです。 [2024/02/02(金) 14:41:20.81 ID:KtCPrk0G.net]
スクリプトのデフォルトコードって型付けされたものになるもんですか?
自分の環境ではならないです

858 名前:名前は開発中のものです。 mailto:sage [2024/02/02(金) 14:51:05.77 ID:bD7U8OGn.net]
ローグライクみたいなコテコテの2DRPGならjs使えるツクールの方が向いてるんじゃないの
作るなとは言わんけどシステム的に要求が多すぎて挫折しがち



859 名前:名前は開発中のものです。 [2024/02/02(金) 15:21:56.69 ID:1cSrS8bV.net]
試しに今触ってるプロジェクト設定のuntyped_declarationを変更してみたが後から変更だと修正キツイ
他のIgnoreになってる設定を有効にすると更にキツイ
自分が使うなら開発開始時にuntyped_declarationを有効にするまでかな

>>847
デフォルトコードの意味が解らんのでエスパーするが変数宣言は以下の様な書き方ができる
var a #Variant型になる
var a = 0 #Variant型になる
var a:int = 0 #int型になる
var a: = 0 #設定値の型が適用されるつまりint型になる

860 名前:名前は開発中のものです。 mailto:sage [2024/02/02(金) 15:29:23.51 ID:bD7U8OGn.net]
型付けもライフサイクルもドキュメント見りゃ大体丁寧に書いてあるけど皆そんなドキュメント見ないのかな

861 名前:名前は開発中のものです。 mailto:sage [2024/02/02(金) 15:36:21.15 ID:zgD08SYH.net]
他の言語触った事ない(GDが初めて)ならドキュメントの見方読み方もよくわかんないんじゃない

862 名前:名前は開発中のものです。 [2024/02/02(金) 15:42:57.64 ID:1cSrS8bV.net]
自分で調べられる人は質問しないから質問が多く見えるのだと思う

863 名前:名前は開発中のものです。 mailto:sage [2024/02/02(金) 16:00:24.46 ID:Qx6M1fJu.net]
あくまで主観だけどGodotのドキュメントは他の言語に比べて大分分かりやすい方だと思う
質問多いのは構わないけど書いてあるのに読まない知らないはドキュメントが勿体ないなと

864 名前:名前は開発中のものです。 [2024/02/02(金) 16:06:24.58 ID:1cSrS8bV.net]
Godotのドキュメントは読みやすいし使いやすいと思うが
使いたい関数がリファレンスに無いのかって質問にリファレンスに書いてるって答えても調べてくれないからな
調べ方を書いても反応なかったのでどうしていいか判らんな

865 名前:名前は開発中のものです。 mailto:sage [2024/02/02(金) 16:17:53.99 ID:SAYqJfSZ.net]
デフォルトコードうんぬんはエディター設定の型ヒントを追加のやつじゃないかな
スクリプトテンプレートにも型が付くようになる

866 名前:名前は開発中のものです。 [2024/02/02(金) 16:28:33.73 ID:1cSrS8bV.net]
あーそういうことね完全に理解した

867 名前:名前は開発中のものです。 [2024/02/02(金) 17:38:12.48 ID:KtCPrk0G.net]
>>849
スクリプトを新規作成したときに、readyとprocessに自動的に型を指定してほしいなと できれば
しかし、gdscriptでも型付けというのはしたほうがいいんでしょうか?
そのほうがトラブルは少なそうですが

868 名前:名前は開発中のものです。 [2024/02/02(金) 18:18:56.37 ID:1cSrS8bV.net]
>>857
>>844
>使うならエディタ設定の型ヒントをオンにしたほうが良さそう
が答えで[エディタ設定][テキストエディタ][自動補完][型ヒントを追加]でわかるかな?

構文チェックはあればあるほどバグが入り込みにくくはなるけど不便になっていくので
個人や組織で必要に合わせて調整するもの
自分の感覚だとuntyped_declarationと型ヒントを追加を有効にするが実用範囲だけど
これだけでもタイプ量と言語知識の要求が増えるのでコーディング難度はあがる



869 名前:名前は開発中のものです。 [2024/02/02(金) 18:40:18.28 ID:KtCPrk0G.net]
>>858
どうも、英語情報調べてるだけじゃ分からん情報でありがたい
このスレも賑わって嬉しい

1週間程度のそんな大きくないプロジェクトなので、untyped declarationなしで、部分的に型付けを使う方式にしたいと思います
混合しないほうがいいのかもですが

870 名前:名前は開発中のものです。 [2024/02/02(金) 21:32:41.15 ID:KtCPrk0G.net]
godoもなんかたまに重いことがあるな
本体とプロジェクトのサイズが小さいだけで、動作の軽快さってのはそんな変わらん?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<255KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef