public void SwapMode(bool inGame) { if (inGame) { // Swap mode inProgress = false; // Delete all blocks on screen foreach (GameObject obj in blocks) { Destroy(obj); } blocks.Clear(); } else { // Swap mode inProgress = true; // Bring back the potato! potato.SetActive(true); // Get rid of thst stupid popup if (losePopup != null) { Destroy(losePopup); } //Spawn a bunch of starting blocks List <int> positions = new List <int>(); for (int i = 0; i < 6; ++i) { float blockSize = Random.Range(minSize, maxSize); int hPos = Random.Range((int)-4, (int)5); for (int j = 0; j < positions.Count; ++j) { if (positions[j] == hPos) { hPos = Random.Range((int)-4, (int)5); j = 0; } } positions.Add(hPos); float vPos = Random.Range(-2f, 5f); GameObject block = Instantiate(fallingBlock, new Vector3(hPos, vPos, 0), Quaternion.identity) as GameObject; block.transform.localScale = new Vector3(1, blockSize, 1); block.name = "Log"; FallDown blockScript = (FallDown)block.GetComponent("FallDown"); blockScript.speed = Random.Range(minSpeed, maxSpeed); blocks.Add(block); } } }
void Update() { // Check if player is touching the screen if (Input.touchCount == 0 || Input.GetTouch(0).phase == TouchPhase.Ended) { potato.SetActive(false); SwapMode(true); } if (Input.touchCount == 1) { start = true; potato.SetActive(true); Vector3 wp = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position); movePotato(new Vector3(wp.x, wp.y, -1f)); } if (inProgress && !complete) { start = true; curTime -= Time.deltaTime; if (curTime < 0) { curTime = spawnFrequency; float blockSize = Random.Range(minSize, maxSize); int hPos = Random.Range((int)-4, (int)5); GameObject block = Instantiate(fallingBlock, new Vector3(hPos, topBound + (blockSize - 1), 0), Quaternion.identity) as GameObject; block.transform.localScale = new Vector3(1, blockSize, 1); block.name = "Log"; FallDown blockScript = (FallDown)block.GetComponent("FallDown"); blockScript.speed = Random.Range(minSpeed, maxSpeed); blocks.Add(block); } } }