I’m trying to make a Simon Says type game and I’m storing all of Simons random color choices and integers in an array. I have it working so that Simon makes a choice, pushes that choice into an array and then I loop through the entire array. The problem I’m having is that even though the values I’m storing in the array are correct (I’m printing them to be sure), when I itterate through the array it plays the same square back. Here’s what I have. I’m sure it’s problem with for (var storedSquare in simonArray)
.
#pragma strict
var greenSquare : GameObject;
var redSquare : GameObject;
var blueSquare : GameObject;
var orangeSquare : GameObject;
var chosenSquare : GameObject;
static var simonStoredColor : String;
var beforeGameWait : float = .75;
var betweenSimonChoiceWait : float = .75;
var afterSimonsTurnWait : float = .75;
var simonArray = Array ();
function Start ()
{
ClickHandler.waitingForPlayer = false;
simonArray.length = 0;
pickRandomSquare();
}
function Update()
{
}
function pickRandomSquare ()
{
yield WaitForSeconds(beforeGameWait);
var randomSquare : int = Random.Range(1, 5);
simonArray.Push(randomSquare);
for (var storedSquare in simonArray)
{
yield WaitForSeconds(betweenSimonChoiceWait);
if (randomSquare == 1)
{
chosenSquare = greenSquare;
chosenSquare.renderer.enabled = true;
simonStoredColor = "Green";
chosenSquare.audio.Play();
}
if (randomSquare == 2)
{
chosenSquare = redSquare;
chosenSquare.renderer.enabled = true;
simonStoredColor = "Red";
chosenSquare.audio.Play();
}
if (randomSquare == 3)
{
chosenSquare = blueSquare;
chosenSquare.renderer.enabled = true;
simonStoredColor = "Blue";
chosenSquare.audio.Play();
}
if (randomSquare == 4)
{
chosenSquare = orangeSquare;
chosenSquare.renderer.enabled = true;
simonStoredColor = "Orange";
chosenSquare.audio.Play();
}
print(simonArray);
yield WaitForSeconds(afterSimonsTurnWait);
chosenSquare.renderer.enabled = false;
}
ClickHandler.waitingForPlayer =true;
}