【軽量】godot engine【無料】 part5 (73レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
20: 11/07(金)12:47:12.11 ID:NCON4E65(2/4) AAS
すみませんもうちょっと詳細に書きます
例えば以下のスクリプトを適当なノードに貼り、その子に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でも同じ現象が起こります
39
(1): 11/19(水)14:15:55.11 ID:RIPT4Gyy(1) AAS
>>37
var array: Array = [1,2,3]
var int_array: Array[int]
int_array.assign(array)
57: 11/24(月)00:47:32.11 ID:gvI5ouKW(1/3) AAS
ちょっと質問なんだけど

チュートリアルでしか使わないフラグ変数とかイベントのコーディングとかってどうしてる
例えば、プレイヤーのインプットを受け取ったらチュートリアルを進行するってコードをプレイヤーノードにハードコードすると、チュートリアル以外でもそのコードが走るわけじゃん
通常のコードとチュートリアルのコードが混在して見通しも悪くなるし

この辺、うまいことできないもんかな
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.008s