【軽量】godot engine【無料】 part5 (47レス)
【軽量】godot engine【無料】 part5 http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
14: 名前は開発中のものです。 [] 2025/11/04(火) 14:17:10.57 ID:Mk8eOtM6 ローグ作りたいが道は遠い http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/14
15: 名前は開発中のものです。 [sage] 2025/11/04(火) 21:12:47.46 ID:AqohUvOo ローグみたいな有名でオープンソースの元ネタも豊富なものは 「ローグスタイルのゲームつくって」ってAIに言えばサクッとつくってくれるんじゃないの http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/15
16: 名前は開発中のものです。 [sage] 2025/11/05(水) 12:06:45.40 ID:BBV6eM8H そりゃ作ってはくれるでしょ(作ってくれるとは言っていない) そのあとが問題なんだよな http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/16
17: 名前は開発中のものです。 [] 2025/11/05(水) 13:16:51.05 ID:hChDyjhf さわれないからな、、 http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/17
18: 名前は開発中のものです。 [sage] 2025/11/07(金) 01:44:01.02 ID:NCON4E65 IMEの入力中(文字に下線ある状態)にそのTextEditを削除するとその次のキー入力が押下イベントだけ発火して解放イベントが来ない っていう現象に見舞われてるけどこれどうにかなる? apply_imeやcancel_ime、release_focusしても無駄でした http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/18
19: 名前は開発中のものです。 [sage] 2025/11/07(金) 02:27:51.26 ID:lnTYGdBs 言っている意味が良く判らんかった 解放イベントはfocus_exitedと仮定すると TextEdit(内のテキスト)を削除してもカレットはそこにあるのだから解放イベントは発生しないであってるんじゃないのかな? 解放イベントとはなんぞ? http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/19
20: 名前は開発中のものです。 [sage] 2025/11/07(金) 12:47:12.11 ID:NCON4E65 すみませんもうちょっと詳細に書きます 例えば以下のスクリプトを適当なノードに貼り、その子にTextEditを持たせるとします func _physics_process(_delta: float) -> void: if Engine.get_physics_frames() == 500: #時間経過で$TextEditを削除 $TextEdit.queue_free() func _input(event: InputEvent) -> void: if event is InputEventKey: #キー入力を記録 print(event) この状態で適当なキー(たとえば右矢印キー)を押して離すと下記のように出力されます InputEventKey: keycode=4194321 (Right), mods=none, physical=false, location=unspecified, pressed=true, echo=false InputEventKey: keycode=4194321 (Right), mods=none, physical=false, location=unspecified, pressed=false, echo=false 自分が解放イベントと呼んでいるのはpressed=falseなInputEventKeyの事です TextEditに何かしら日本語を入力して確定せず待機し、TextEditがqueue_freeで削除されるまで待ちます その後に右矢印キーを押して離すと下記のように出力されます InputEventKey: keycode=4194321 (Right), mods=none, physical=false, location=unspecified, pressed=true, echo=false 見ての通りpressed=falseなInputEventKeyが出力されません、 同様にインプットマップの組み込みアクションであるui_rightなども入力され続ける状態になっています 次に何かしらキーを離した時は通常の挙動に戻ります 削除そのものが原因ではなく、コードによりIMEの確定待ち状態が解除されることが原因のようです 上記コードのqueue_freeをapply_imeやcancel_ime、release_focusに変更しても同じ現象が起こります TextEditに限らずLineEditでも同じ現象が起こります http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/20
21: 名前は開発中のものです。 [sage] 2025/11/07(金) 12:52:58.37 ID:NCON4E65 コードのインデント消えちゃったけど雰囲気で読み取ってください 修正待ちバグ案件な気もしてきた http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/21
22: 名前は開発中のものです。 [sage] 2025/11/07(金) 14:02:09.22 ID:lnTYGdBs 現象は確認できたけど対応策は判んないな Linux環境では起きなかったのでWindows環境限定と思う 入力中のTextEditを削除する要件ってのが良く判らんがそこら辺から対策できるんじゃないのかね? http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/22
23: 名前は開発中のものです。 [sage] 2025/11/07(金) 15:51:14.73 ID:c4lPyYM9 はーおもしろいバグ見つけたね これはチケット切りましょ、なんなら自分でプルリク送りましょ http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/23
24: 名前は開発中のものです。 [sage] 2025/11/07(金) 22:41:42.71 ID:NCON4E65 やっぱりキツいですかねー やりたいのが制限時間尽きたら入力ダイアログ閉じるみたいなシンプルな動作なんだけどバグ回避するのも結構難しそう バグ報告とかやったことないけどどうにか調べてやってみますわ…… http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/24
25: 名前は開発中のものです。 [sage] 2025/11/07(金) 23:47:34.19 ID:lnTYGdBs IME制御がOSの管理下でGodotEngineから制御しきれてないのが原因と仮定して win32apiのkeybd_eventでVK_ESCAPEを下げ上げしてIME操作を取り消した所、問題の回避に成功したと思われ ui_rightが押されっぱなしの挙動はなくなりました ログはこんな感じ(IMEオン→1キー入力→取り消し操作の時間まで待機→右カーソル入力) InputEventKey: keycode=8388607 (Unknown), mods=none, physical=false, location=unspecified, pressed=false, echo=false InputEventKey: keycode=8388607 (Unknown), mods=none, physical=false, location=unspecified, pressed=true, echo=false InputEventKey: keycode=4194321 (Right), mods=none, physical=false, location=unspecified, pressed=true, echo=false InputEventKey: keycode=4194321 (Right), mods=none, physical=false, location=unspecified, pressed=false, echo=false http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/25
26: 名前は開発中のものです。 [] 2025/11/08(土) 08:56:20.17 ID:ZjDMOKGY 小さなモックはサクッと作れるようになりたい http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/26
27: 名前は開発中のものです。 [sage] 2025/11/08(土) 09:57:55.85 ID:0lkI1PxY >>25 質問者です ちょっと俺のスキル足りなくて理解し切れてないんだけど希望ありそうなのはありがたい ありがとう http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/27
28: 名前は開発中のものです。 [sage] 2025/11/08(土) 10:19:28.84 ID:DnZpcrSa >>27 IMEの候補ウインドウが表示されている時に人がエスケープキーを押して取り消す操作を Windowsに備わってるAPI呼び出し関数を使って再現する方法を取っています Windowsの機能を呼ぶためのDLL群の事をWin32APIと呼び 今回はキーボードの入力イベントを再現するkeybd_event関数を利用しています Win32APIはGDScriptよりもC#からの方が呼び出すのが容易なのでC#で機能を作りました やってる事はありきたりな方法なのでブラウザのAIにでも聞けば教えてくれると思います http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/28
29: 名前は開発中のものです。 [sage] 2025/11/08(土) 10:26:53.09 ID:DnZpcrSa Godotのプロジェクト内でGDScriptとC#は同時に利用できるので keybd_eventを呼び出す為だけの.csファイルを用意してGDScriptから呼び出しました 提示ソースのqueue_free()がkeybd_eventの呼び出し関数に置き代わりになります 問題の発生しないcance_ime()代替関数と言えるかもしれません http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/29
30: 名前は開発中のものです。 [] 2025/11/09(日) 06:23:31.32 ID:tZtmJDi3 C#とGDscriptどちら使うもんなの http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/30
31: 名前は開発中のものです。 [sage] 2025/11/09(日) 14:15:38.48 ID:yrrBSKKL ワナビ2057の場合は、GDScript。 それ以外の人は、好きな方を使う。 以上、次の質問どうぞ。 Choosing Between C# and GDScript in Godot | Patrick T Coakley ttps://patricktcoakley.com/blog/choosing-between-csharp-and-gdscript-in-godot/ http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/31
32: 名前は開発中のものです。 [] 2025/11/10(月) 19:32:24.87 ID:A216r14H godot用のvscode拡張で、高機能なやつなんだっけ ピエロみたいなマークのやつ http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/32
33: 名前は開発中のものです。 [] 2025/11/11(火) 05:45:35.64 ID:Yis2Hx0Z コードって全て型つけしたほうがわかりやすくなるんやろ? untyped decralationをエラーにしといたほうがいいのかい? http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/33
34: 名前は開発中のものです。 [] 2025/11/13(木) 13:19:49.42 ID:S8ZzI1Dx 配列の型なんだけど、variant使うのがいいのかね? intにすると空の[]すら入れられないみたい。 色々面倒やな http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/34
35: 名前は開発中のものです。 [sage] 2025/11/18(火) 11:30:55.19 ID:dZjxXGEg var a :Array[int] = [1, 2, 3] print(a.size()) # Prints 3 a = [] print(a.size()) # Prints 0 http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/35
36: 名前は開発中のものです。 [] 2025/11/19(水) 13:30:03.17 ID:v8zT46RE ArrayをArray[int]に簡単に変換する方法あったりするの? for文で回して配列作り直すしかないんかな as Array[int]はダメっぽいし http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/36
37: 名前は開発中のものです。 [] 2025/11/19(水) 13:30:04.56 ID:v8zT46RE ArrayをArray[int]に簡単に変換する方法あったりするの? for文で回して配列作り直すしかないんかな as Array[int]はダメっぽいし http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/37
38: 名前は開発中のものです。 [sage] 2025/11/19(水) 14:15:48.17 ID:kHRrMfdl >intにすると空の[]すら入れられないみたい。 は嘘と提示してるだけなので違う話を持ち出されても困る らしいではなく自分で試せ >ArrayをArray[int]に簡単に変換する方法あったりするの? 型指定をするのは自分で型を管理できるからなので不用意な変換が発生する設計をしない 変換そのものはできる、自分で調べろ http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/38
39: 名前は開発中のものです。 [sage] 2025/11/19(水) 14:15:55.11 ID:RIPT4Gyy >>37 var array: Array = [1,2,3] var int_array: Array[int] int_array.assign(array) http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/39
40: 名前は開発中のものです。 [sage] 2025/11/19(水) 14:27:58.58 ID:kHRrMfdl 回答書かれてしまったから書くがコンストラクタでもできる var array: Array = [1,2,3] var int_array: Array[int] = Array(array, TYPE_INT, "", null) # Array[int] print(int_array.size()) # Prints 3 マニュアル読め docs.godotengine.org/ja/4.x/classes/class_array.html http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/40
41: 名前は開発中のものです。 [] 2025/11/19(水) 21:23:07.52 ID:v8zT46RE サンクス jsonで整数の配列を読み込むと値がfloatになるっぽいんだけどこの状態の配列に対してarr.erase(0)とかで整数の値消そうとしても消せないみたい だから型をintにする必要があった http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/41
42: 名前は開発中のものです。 [sage] 2025/11/19(水) 22:06:24.00 ID:kHRrMfdl >floatになるっぽいんだけどこの状態の配列に対してarr.erase(0)とかで整数の値消そうとしても消せないみたい 実際に試してみたか? var float_array: Array[float] = [0.0, 1.1, 2.2] float_array.erase(0) print(float_array.size()) # Prints 2 >jsonで整数の配列を読み込むと値がfloatになるっぽい ここから何かが違ってるのだろ http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/42
43: 名前は開発中のものです。 [sage] 2025/11/19(水) 22:21:51.78 ID:rYGTSCKR JSONには数値型はあるが、整数型はない だからJSONを読み込んで整数の配列を期待するのは間違い http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/43
44: 名前は開発中のものです。 [] 2025/11/19(水) 22:42:47.34 ID:Wy3zyUux ColorRectノードにアウトライン設定する方法インスペクタ上にある? http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/44
45: 名前は開発中のものです。 [sage] 2025/11/19(水) 22:48:05.89 ID:kHRrMfdl マニュアル読め docs.godotengine.org/ja/4.x/classes/class_colorrect.html http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/45
46: 名前は開発中のものです。 [] 2025/11/20(木) 00:06:13.55 ID:6YXRCu32 所持アイテムのIDをintで管理して配列に突っ込んでJSONで保存、読み込みとかありそうだけどダメなのか http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/46
47: 名前は開発中のものです。 [sage] 2025/11/20(木) 00:20:06.45 ID:w9GKd/Ei JSON だと数値が整数である保証がないので、全部 float として扱うのは自然ではある http://mevius.5ch.net/test/read.cgi/gamedev/1760611391/47
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.006s