Измените переменную, если есть ввод int

#godot #gdscript

#godot #gdscript

Вопрос:

Моя цель состоит в том, что если я введу «points», он покажет мне содержимое переменной, но если я добавлю после нее значение int, это изменит значение переменной

Это то, что у меня есть прямо сейчас:

 func add_message(text):
    chatLog.bbcode_text  = 'n'
    chatLog.bbcode_text  = text

func text_entered(text):
    if text == "points":
        chatLog.bbcode_text = ''
        add_message("Current value of [color=yellow]Points: [/color]"   str("[color=fuchsia]"   str(points)   "[/color]"))
        inputField.text = ''
 

Ответ №1:

Вы можете взять входной текст и разделить его на слова с split помощью . Затем возьмите их один за другим:

 func text_entered(text):
    var tokens = text.split(" ")
    var count = tokens.size()
    if count == 0:
        # (empty input)
        return # or whatever

    if count > 0 and tokens[0] == "points":
        if count > 1 and tokens[1].is_valid_integer():
            # points int
            var integer = tokens[1].to_int()
            points = points   integer # or whatever
        elif count > 1:
            # points invalid_int
            pass # or whatever
        else:
            # points
            pass # or whatever
    else:
        pass # not_points
 

В приведенном выше коде мы is_valid_integer проверяем, что текущее слово является целым числом, и если это так, мы можем преобразовать его с to_int помощью .