[過去ログ] 【軽量】godot engine - part2 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
838: 名前は開発中のものです。 [] 2024/02/02(金) 02:19:14.30 ID:1cSrS8bV(2/13) AAS
root配下の全ノードを処理している最中にノードの変更があった場合にどうするのが正しいのか?
ノード変更のタイミングによってノードがあったりなかったりすると不安定な挙動になる
なので確実に_readyや_process等のノード処理の完了後に動作させる為にcall_deferredを使う
add_child(node)で動くのはたまたまな可能性があるのでcall_deferredお勧め
839: 名前は開発中のものです。 [] 2024/02/02(金) 02:27:59.11 ID:1cSrS8bV(3/13) AAS
ソースを見てないので推測だが一般的にツリーノードは再帰処理で回しているはず
root直下のノード群は最初に取得済となって後から追加しても無視されると思われる
840(1): 名前は開発中のものです。 [] 2024/02/02(金) 05:57:16.86 ID:KtCPrk0G(1/6) AAS
>>833833(1): 名前は開発中のものです。 [] 2024/02/01(木) 21:13:34.80 ID:Fw0MlK/N(1) AAS
短くしたかったので一行に纏めたのが良くなかった
宣言と初期設定と使用が分かれるならこんな感じ
_readyの中で型指定しても_processからは見えないから上位で型指定する
var node:RigidBody2D
func _ready()
node = get_node(path)
func _process(_delta):
node.apply_impulse(impuls)
ありがとう
自動型つけってこういうデメリット?があるんですね。自動で取得したノードの型まで取ってくれるわけではないのはなぜなんでしょうか。
あと、型つけ忘れたりありますが、gdscriptで型付け強制出来ますかね
841: 名前は開発中のものです。 [sage] 2024/02/02(金) 11:21:24.43 ID:HJWQqSOJ(1) AAS
>>834ダッシュって次の曲がり角までスキップ(早回し?)するアレ?
ローグライクって周りのマス参照したりターン制御したりダンジョン自動生成したり複雑だよな
俺も作ってみるか
842(2): 名前は開発中のものです。 [] 2024/02/02(金) 13:26:01.70 ID:1cSrS8bV(4/13) AAS
>>840
ノードの型は実行時に取得するまで判らないので編集時はコードから判断される
型指定は宣言時に自分で行う
宣言時に初期設定も終わらせるなら
var rigidbody := get_node(path) as RigidBody2D
で宣言時の型指定を省略できる
付け忘れ対策はlintの様な外部ツールを使うしかないと思う
便利機能安全機構が増えるほどプログラムサイズは大きくなり処理は重くなる
GodotEngineは軽量な点が魅力なので標準でなくて構わないと自分は思う
843(1): 名前は開発中のものです。 [sage] 2024/02/02(金) 13:56:07.61 ID:SAYqJfSZ(1/2) AAS
>>842
調べたらプロジェクト設定 debug/gdscript/warnings/untyped_declaration を errorに設定するとエラーになるっぽい
使うならエディタ設定の型ヒントをオンにしたほうが良さそう
他にも使えそうな警告がいっぱいあった
844: 名前は開発中のものです。 [] 2024/02/02(金) 14:04:57.68 ID:1cSrS8bV(5/13) AAS
エディタの設定だと思ってプロジェクトの方見てなかったありがとう
845: 名前は開発中のものです。 [] 2024/02/02(金) 14:30:28.27 ID:KtCPrk0G(2/6) AAS
>>842
明治してやらないと駄目なんですね そう受け入れます
untyped decralationを設定したらそうなりました
ありがとう(*´ω`*)
unityと併用すること考えたら型付けしといたほうがいいですね
846(1): 名前は開発中のものです。 [] 2024/02/02(金) 14:41:20.81 ID:KtCPrk0G(3/6) AAS
スクリプトのデフォルトコードって型付けされたものになるもんですか?
自分の環境ではならないです
847: 名前は開発中のものです。 [sage] 2024/02/02(金) 14:51:05.77 ID:bD7U8OGn(1/2) AAS
ローグライクみたいなコテコテの2DRPGならjs使えるツクールの方が向いてるんじゃないの
作るなとは言わんけどシステム的に要求が多すぎて挫折しがち
848(1): 名前は開発中のものです。 [] 2024/02/02(金) 15:21:56.69 ID:1cSrS8bV(6/13) AAS
試しに今触ってるプロジェクト設定のuntyped_declarationを変更してみたが後から変更だと修正キツイ
他のIgnoreになってる設定を有効にすると更にキツイ
自分が使うなら開発開始時にuntyped_declarationを有効にするまでかな
>>846
デフォルトコードの意味が解らんのでエスパーするが変数宣言は以下の様な書き方ができる
var a #Variant型になる
var a = 0 #Variant型になる
var a:int = 0 #int型になる
var a: = 0 #設定値の型が適用されるつまりint型になる
849: 名前は開発中のものです。 [sage] 2024/02/02(金) 15:29:23.51 ID:bD7U8OGn(2/2) AAS
型付けもライフサイクルもドキュメント見りゃ大体丁寧に書いてあるけど皆そんなドキュメント見ないのかな
850: 名前は開発中のものです。 [sage] 2024/02/02(金) 15:36:21.15 ID:zgD08SYH(1/2) AAS
他の言語触った事ない(GDが初めて)ならドキュメントの見方読み方もよくわかんないんじゃない
851: 名前は開発中のものです。 [] 2024/02/02(金) 15:42:57.64 ID:1cSrS8bV(7/13) AAS
自分で調べられる人は質問しないから質問が多く見えるのだと思う
852: 名前は開発中のものです。 [sage] 2024/02/02(金) 16:00:24.46 ID:Qx6M1fJu(1) AAS
あくまで主観だけどGodotのドキュメントは他の言語に比べて大分分かりやすい方だと思う
質問多いのは構わないけど書いてあるのに読まない知らないはドキュメントが勿体ないなと
853(2): 名前は開発中のものです。 [] 2024/02/02(金) 16:06:24.58 ID:1cSrS8bV(8/13) AAS
Godotのドキュメントは読みやすいし使いやすいと思うが
使いたい関数がリファレンスに無いのかって質問にリファレンスに書いてるって答えても調べてくれないからな
調べ方を書いても反応なかったのでどうしていいか判らんな
854: 名前は開発中のものです。 [sage] 2024/02/02(金) 16:17:53.99 ID:SAYqJfSZ(2/2) AAS
デフォルトコードうんぬんはエディター設定の型ヒントを追加のやつじゃないかな
スクリプトテンプレートにも型が付くようになる
855: 名前は開発中のものです。 [] 2024/02/02(金) 16:28:33.73 ID:1cSrS8bV(9/13) AAS
あーそういうことね完全に理解した
856(2): 名前は開発中のものです。 [] 2024/02/02(金) 17:38:12.48 ID:KtCPrk0G(4/6) AAS
>>848
スクリプトを新規作成したときに、readyとprocessに自動的に型を指定してほしいなと できれば
しかし、gdscriptでも型付けというのはしたほうがいいんでしょうか?
そのほうがトラブルは少なそうですが
857(1): 名前は開発中のものです。 [] 2024/02/02(金) 18:18:56.37 ID:1cSrS8bV(10/13) AAS
>>856
>>843の
>使うならエディタ設定の型ヒントをオンにしたほうが良さそう
が答えで[エディタ設定][テキストエディタ][自動補完][型ヒントを追加]でわかるかな?
構文チェックはあればあるほどバグが入り込みにくくはなるけど不便になっていくので
個人や組織で必要に合わせて調整するもの
自分の感覚だとuntyped_declarationと型ヒントを追加を有効にするが実用範囲だけど
これだけでもタイプ量と言語知識の要求が増えるのでコーディング難度はあがる
858: 名前は開発中のものです。 [] 2024/02/02(金) 18:40:18.28 ID:KtCPrk0G(5/6) AAS
>>857
どうも、英語情報調べてるだけじゃ分からん情報でありがたい
このスレも賑わって嬉しい
1週間程度のそんな大きくないプロジェクトなので、untyped declarationなしで、部分的に型付けを使う方式にしたいと思います
混合しないほうがいいのかもですが
859: 名前は開発中のものです。 [] 2024/02/02(金) 21:32:41.15 ID:KtCPrk0G(6/6) AAS
godoもなんかたまに重いことがあるな
本体とプロジェクトのサイズが小さいだけで、動作の軽快さってのはそんな変わらん?
860: 名前は開発中のものです。 [] 2024/02/02(金) 22:23:34.27 ID:1cSrS8bV(11/13) AAS
GDScriptは他のコンパイル言語と比べて処理速度は遅い
速度が必要な処理はC#やGDExtensionで多言語に処理を投げる
がしかし個人製作の場合はこれが問題になる事は少ないだろうと思う
プログラムは適当に書いても動くが性能を求めるなら効率の良いコードを書かなければならない
プロファイラーを使うか自前コードで計測して遅い部分を把握する
外部リンク[html]:docs.godotengine.org
適当エスパーしとくと
_processの様な頻繁に呼ばれる個所では可能な限りループ処理はしない
リソースは動的に呼び出さない参照は最短で最低限にする
高性能なGPUを持ってなく機能も使う必要がないならレンダリング-レンダラーを下位の物に下げると良いかもしれない
861: 名前は開発中のものです。 [sage] 2024/02/02(金) 22:29:30.47 ID:zgD08SYH(2/2) AAS
多分エディタの動作の話だと思う
862: 名前は開発中のものです。 [] 2024/02/02(金) 22:38:56.98 ID:1cSrS8bV(12/13) AAS
エディタだと大本の環境依存すぎて難しいな不便だけど自動補完を切るとかかな?
上下前次1-新書関写板覧索設栞歴
あと 140 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.018s