- Home /
Trouble with Round Generating
Hey everyone!
Currently I'm having trouble with a block matching game I'm creating. I've got the main functionality of everything down, but I still need to allow the game to create "Rounds" (i.e. Round 1, Round 2, Round 3, etc). What's happening right now is that on load it's creating a grid of blocks. What I want is after a certain number of blocks have been destroyed during a round, I want the game to automatically change rounds and regenerate a grid of blocks. I'll post the code so you all can look at it and see what I'm doing wrong, but basically as of right now, with what I've created, it's not generating rounds.
#region createWorld
public void createWorld (int i) {
int r = i+1;
Round thisRound = new Round();
thisRound.roundNumber = r;
if (r < 2) {
//Create a grid of blocks that chooses a random number and assigns an asset to that number
for (int x = 0; x<gridWidth; x++) {
for (int z = 0; z<gridHeight; z++) {
int chooseBlock = Random.Range(0, 3);
gameBoard.grid[x,z] = Instantiate(block1, transform.position, transform.rotation) as GameObject;
gameBoard.grid[x,z].AddComponent<Block>();
gameBoard.grid[x,z].transform.parent = transform;
gameBoard.grid[x,z].transform.localPosition = new Vector3 (x-4.5f, 1, z-4.5f);
gameBoard.grid[x,z].renderer.material.mainTexture = blockTex[chooseBlock];
gameBoard.grid[x,z].transform.localScale = new Vector3 (.95f, .95f, .95f);
}
}
}
else {
//Create a grid of blocks that chooses a random number and assigns an asset to that number
for (int x = 0; x<gridWidth; x++) {
for (int z = 0; z<gridHeight; z++) {
int chooseBlock = Random.Range(0, 5);
gameBoard.grid[x,z] = Instantiate(block1, transform.position, transform.rotation) as GameObject;
gameBoard.grid[x,z].AddComponent<Block>();
gameBoard.grid[x,z].transform.parent = transform;
gameBoard.grid[x,z].transform.localPosition = new Vector3 (x-4.5f, 1, z-4.5f);
gameBoard.grid[x,z].renderer.material.mainTexture = blockTex[chooseBlock];
gameBoard.grid[x,z].transform.localScale = new Vector3 (.95f, .95f, .95f);
}
}
}
}
#endregion
#region roundControl
void roundControl () {
createWorld (0);
}
#endregion
#region Menu Controls
void OnEnable() {
startMenu();
}
public void playClicked() {
activateScreens(menuScreen.Level);
}
/*
public void instructionsClicked() {
activateScreens(menuScreen.Instructions);
}
*/
public void startMenu() {
activateScreens(menuScreen.Menu);
}
void activateScreens(menuScreen changeScreen) {
screen = changeScreen;
mainMenu.SetActive(false);
//mainInstruction.SetActive(false);
mainGame.SetActive(false);
switch(changeScreen) {
case menuScreen.Menu:
luckyBackground.renderer.material.mainTexture = firstMenu;
mainMenu.SetActive(true);
break;
//case menuScreen.Instructions:
//luckyBackground.renderer.material.mainTexture = firstMenu;
//mainInstruction.SetActive(true);
//break;
case menuScreen.Level:
luckyBackground.renderer.material.mainTexture = playGame;
mainGame.SetActive(true);
roundControl();
break;
}
}
#endregion
Alright so, I posted just part of what I'm working with here and where I want the round functionality to go. If you need alternate scripts from this entire script in order to assist me, I'd welcome that. Thank you all in advance! Any help is much appreciated!