public tilescript checkMatch() { for (int x = 0; x < WIDTH; x++) { for (int y = 0; y < HEIGHT; y++) { tilescript tileScript = tiles[x, y].GetComponent <tilescript>(); if (tileScript != null) { // check horizontal match if (x < WIDTH - 2 && tileScript.isMatch(tiles[x + 1, y], tiles[x + 2, y])) { return(tileScript); } // check vertical match if (y < HEIGHT - 2 && tileScript.isMatch(tiles[x, y + 1], tiles[x, y + 2])) { return(tileScript); } } } } return(null); }
public void removeMatches() { // delete tiles for (int x = 0; x < WIDTH; x++) { for (int y = 0; y < HEIGHT; y++) { tilescript tileScript = tiles[x, y].GetComponent <tilescript>(); if (tileScript != null) { // check horizontal match if (x < WIDTH - 2 && tileScript.isMatch(tiles[x + 1, y], tiles[x + 2, y])) { // emit particles + increase score Instantiate(particles, tiles[x, y].transform.position, Quaternion.identity); Instantiate(particles, tiles[x + 1, y].transform.position, Quaternion.identity); Instantiate(particles, tiles[x + 2, y].transform.position, Quaternion.identity); Destroy(tiles[x, y]); Destroy(tiles[x + 1, y]); Destroy(tiles[x + 2, y]); var source = GameObject.Find("GameManager").GetComponent <AudioSource>(); source.PlayOneShot(matchSound, .4f); if (playerScript.gameStart) { score += 3; } } // check vertical match if (y < HEIGHT - 2 && tileScript.isMatch(tiles[x, y + 1], tiles[x, y + 2])) { // emit particles + increase score Instantiate(particles, tiles[x, y].transform.position, Quaternion.identity); Instantiate(particles, tiles[x, y + 1].transform.position, Quaternion.identity); Instantiate(particles, tiles[x, y + 2].transform.position, Quaternion.identity); Destroy(tiles[x, y]); Destroy(tiles[x, y + 1]); Destroy(tiles[x, y + 2]); var source = GameObject.Find("GameManager").GetComponent <AudioSource>(); source.PlayOneShot(matchSound, .4f); if (playerScript.gameStart) { score += 3; } } } } } }