With a big thank you to Wombatstapede, this is the code without errors. Just wanted to share it to you so you will have some more working code examples.
extends Control
#begin met het maken van een dictionary. Maak er twee, zodat ze
var antwoord_ingevoerd
var omvang_vragen
var willekeurige_vraag
var dict_vr
var data
var juiste_antwoord
var getoonde_vraag
onready var weergave_vraag_tekst = get_node("VBoxContainer/WeergaveVraag")
onready var knopje = get_node("VBoxContainer/VBoxContainer/Button")
onready var invoer = get_node("VBoxContainer/VBoxContainer/Invoer")
onready var pauze = get_node("Timer")
var juist = false
var fout = false
func _ready():
json_vragen()
pauze.set_wait_time(2) #zet het aantal seconden op 2
func json_vragen():
var vragen_file = File.new() #we maken een variabele die een kopie is van var vragen in _ready()
vragen_file.open("dictionary_default_q_a.json", File.READ)# lees de gegevens als tekst
dict_vr = JSON.parse(vragen_file.get_as_text())
if dict_vr.error == OK: # If parse OK
data = dict_vr.result
#print(data)
omvang_vragen = data.questions.size()
randomize() # nodig om echt willekeur te vormen
getoonde_vraag = randi() % omvang_vragen
willekeurige_vraag = data["questions"][getoonde_vraag] #kies een getal tussen 0 en het aantal
juiste_antwoord = data["answers"][getoonde_vraag]
#vragen in de dictionary.
weergave_vraag_tekst.set_text(willekeurige_vraag)
vragen_file.close()#sluit het bestand
else: # If parse has errors
print("Error: ", dict_vr.error)
print("Error Line: ", dict_vr.error_line)
print("Error String: ", dict_vr.error_string)
func _on_Invoer_text_entered(new_text): #door enter te drukken doe hetzelfde als door
#op de knop te klikken
_on_Button_pressed()
pass # Replace with function body.
func _on_Button_pressed():
antwoord_ingevoerd = get_node("VBoxContainer/VBoxContainer/Invoer").text
#print("Check: "+antwoord_check+" <=> "+juiste_antwoord)
if (antwoord_ingevoerd == juiste_antwoord):
knopje.add_color_override("font_color", Color( 0, 1, 0, 1 ))
knopje.add_color_override("font_color_pressed", Color( 0, 1, 0, 1 ))
knopje.add_color_override("font_color_hover", Color( 0, 1, 0, 1 ))
knopje.set_text("Juiste antwoord")
# To add one to a variable, just use "variable += 1"
# or "variable = variable + 1"
global.score += 1
global.pogingen += 1
juist = true
pauze.start()
elif (antwoord_ingevoerd != juiste_antwoord):
knopje.add_color_override("font_color", Color(176,0,0,255))
knopje.add_color_override("font_color_pressed", Color(176,0,0,255))
knopje.add_color_override("font_color_hover", Color(176,0,0,255))
knopje.set_text("Fout antwoord")
# Same here
global.pogingen += 1
fout = true
pauze.start()
func _on_Timer_timeout():
if (juist == true):
self.juist_beantwoord()
elif (fout == true):
self.fout_beantwoord()
...
And this is how the Json dictionary should look like:
{"questions": ["Question A",
"Question B",
"Question C",
"Question D",
"Question H or whatever"
],
"answers": ["Answer 1",
"Answer 2",
"Answer 3",
"Answer 4",
"Answer 5 or whatever"
]
}