我一直在开发一个基于网格的游戏,类似于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
要更新 GridContainer 子级的标签,您需要迭代每个子级。
为此,您可以使用
for
循环:
func set_all_labels(letter: String):
var children = $VBoxContainer/MiddleHBox/MidVBox/GridContainer.getChildren()
/Space1/Label.text = letter