示例#1
0
    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);
    }
示例#2
0
    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;
                        }
                    }
                }
            }
        }
    }