/*~~~~~~ public functions ~~~~~~*/ /*~~~~~~ private functions ~~~~~~*/ private void enterRoom(int nextRoomIndex, float pipeStartPosition) { //Set current node to previous node prevNode = currentNode; //Set current node to next node currentNode = currentNode.roomAdj [nextRoomIndex]; //Set isColored currentNode.isColored = true; //Update roomStartPos float pipeLength = roomObjectPools["pipeWhole"].Peek().renderer.bounds.size.x; roomStartPosX = pipeStartPosition + pipeLength; //Instantiate objects for new room placeNewRoomObjects(currentNode.roomAdj); //Alert subscribers that you have changed the room onRoomChange(currentNode.roomTile); }
private roomNode[] generateRoomNodes() { //Create 8 room nodes int numRooms = 8; roomNode[] roomNodes = new roomNode[numRooms]; //Create temporary taken array for (int i = 0; i < numRooms; i++) { //Create the room node object roomNodes[i] = new roomNode(); //Assign each room node a different color switch (i) { case 0: roomNodes[i].roomTile = "pinkRoom"; break; case 1: roomNodes[i].roomTile = "purpleRoom"; break; case 2: roomNodes[i].roomTile = "greenRoom"; break; case 3: roomNodes[i].roomTile = "blueRoom"; break; case 4: roomNodes[i].roomTile = "redRoom"; break; case 5: roomNodes[i].roomTile = "blackRoom"; break; case 6: roomNodes[i].roomTile = "orangeRoom"; break; case 7: roomNodes[i].roomTile = "yellowRoom"; break; } // Assign each room a size roomNodes[i].roomSize = Random.Range(minRoomSize, maxRoomSize); } return(roomNodes); }
/*~~~~~~ unity functions ~~~~~~*/ // Use this for initialization void Start() { //Initialize levelEnd Node levelEnd = new roomNode(); levelEnd.roomTile = "endRoom"; levelEnd.roomSize = 100; //Create pools of room objects createRoomObjectPools(); //generate room nodes that make up the level currentNode = createRooms(); //Initialize variables to start rendering/instantiating rooms roomStartPosX = 0; //Will make first room slightly too large //Initialize previous node to an empty node prevNode = new roomNode(); //Set first room to isColored currentNode.isColored = true; //Place all objects for the first room placeNewRoomObjects(currentNode.roomAdj); //Alert level tiler of roomTile onRoomChange(currentNode.roomTile); }