Thank you for your help! I'm not getting an error anymore but my problem now is that the random number generator is generating the same numbers, even when I successfully call it from my Game
script.
I changed my Global
script to include a separate function called _get_random_objects():
(as you said) and that is now being called from _ready()
.
extends Node
var list = range(0,10)
var sample =[]
var distractor_object = []
var target_objects = []
var bowl = preload("res://Sprites/Objects/bowl.png")
var bread = preload("res://Sprites/Objects/bread.png")
var cheese_grater = preload("res://Sprites/Objects/cheese_grater.png")
var clock= preload("res://Sprites/Objects/clock.png")
var cup = preload("res://Sprites/Objects/cup.png")
var pot = preload("res://Sprites/Objects/pot.png")
var straws = preload("res://Sprites/Objects/straws.png")
var tissue_paper = preload("res://Sprites/Objects/tissue_paper.png")
var toilet_paper = preload("res://Sprites/Objects/toilet_paper.png")
var tooth_paste = preload("res://Sprites/Objects/tooth_paste.png")
var tex_ref_array = [bowl, bread, cheese_grater, clock, cup, pot, straws, tissue_paper,
toilet_paper, tooth_paste]
func _ready():
randomize()
_get_random_objects()
func _get_random_objects():
for i in range(4):
var x = randi()%list.size()
sample.append(list[x])
list.remove(x)
print("Array is " + str(sample))
target_objects = sample.slice(0,2)
print("Target objects are " + str(target_objects))
distractor_object = sample[3]
print("Distractor object is " + str(distractor_object))
func _reset_vars():
var list = range(0,10)
var sample =[]
var distractor_object = []
var target_objects = []
get_tree().reload_current_scene()
meanwhile i also updated my Game
script to call the Global._reset_vars()
and Global._get_random_objects()
functions inside my Game
script
func _reset():
targetObjectsPoints = 0
distractorObjectsPoints = 0
missedObjectsPoints = 0
get_tree().reload_current_scene()
queue_free()
#free Global script
Global._reset_vars()
Global._get_random_objects()
get_tree().change_scene("res://Scenes/LevelSwitch.tscn")
in the output for the first random number generator call (i.e. when the tree loads and runs the autoload script for the first time) my output (coming from the variable sample
generated in my Global
script), is, for example a set of 4 random numbers Array is [6,1,8,9]
. However, when I call it again from the _reset()
function in my Game
script, I need those numbers to change as if I quit the game and started a whole new number generator in my Global
script. Right now, I'm getting the same list [6,1,8,9]
.
Is there a tweak I need to make here?