Данные глобальной переменной не переданы [Godot.2.15] - PullRequest
0 голосов
/ 02 января 2019

Я создавал «Калькулятор сложностей математической математики» в Godot, где пользователю показывали новый вопрос о нажатии кнопки «on_Button_pressed», а сумма сохранялась в «global var c», а затем доступ к входу осуществлялся через «Lineedit»."и сохраняется в" var d ". Однако, когда" var c "передается для сравнения с" var d "в" Lineedit ", он передает значение" Null ". Как можно передавать значения между двумя функциями.

extends Panel

# global variables
var a = " "
var b = " "
var c = " "
var d = " "

func _ready():
    pass

#Generate Random number and store sum in "var c"    
func _on_Button_pressed():

    randomize()
    var a = floor (rand_range(1,100))
    var b = floor (rand_range(1,100))

    var c = a+b
    print (a)
    print (b)
    print ("c = "+ str(c))

    get_node("RichTextLabel").set_text(str(a)+"+"+str(b)+"=")



#User_input
func _on_LineEdit_text_entered( text ):
    d = get_node("LineEdit").text

#pass sum "var c" for comparison with user_input "var d" 

print(c)<-- NUll value being passed.


#Accesing value via node method
#   var e = get_node("Panel").get("c").to_float()<-- Error-"Panel node doesn't exist"
#   print(e)


#convert d to float 
    var f = d.to_float()
    print(f)

#Compare sum with user_input
#   if  f == c:
#       get_node("RichTextLabel").set_text("Right Answer")
#   else:
#       get_node("RichTextLabel").set_text("Wrong Answer")

1 Ответ

0 голосов
/ 03 января 2019

Попробуйте заменить строку

var c = a + b

на

c = a + b

. Var c объявляет новую переменную, работающую в области действия функции.Ключевое слово var должно быть в самой внешней декларации кода.

Надеюсь, это поможет!

...