如何在Godot中编辑网格的所有文本标签

问题描述 投票:0回答:1

我一直在开发一个基于网格的游戏,类似于wordle,它将更改每个网格空间的标签以等于用户输入。我想出了如何根据用户输入更改标签,但我不确定如何将所有标签设置为空。我知道我可以通过侧边栏将每个标签清空,但我希望能够使用重置游戏的代码来清除它们。

以下是我尝试过的,但这只能让我编辑指定的标签。我想也许我可以使用某种系统来编辑网格的子项?

func _input(event):
    if event is InputEventKey and event.is_pressed():
        var key_text = OS.get_keycode_string(event.get_physical_keycode_with_modifiers())
        print(key_text)
        set_letter(key_text)

func set_letter(letter: String):
    $VBoxContainer/MiddleHBox/MidVBox/GridContainer/Space1/Label.text = letter
godot rich-text-editor godot4
1个回答
0
投票

要更新 GridContainer 子级的标签,您需要迭代每个子级。

为此,您可以使用

for
循环:

func set_all_labels(letter: String):
    var children = $VBoxContainer/MiddleHBox/MidVBox/GridContainer.getChildren()

/Space1/Label.text = letter
© www.soinside.com 2019 - 2024. All rights reserved.