예제 #1
0
    private IEnumerator CheckMatch(PiceOfPuzzle piceOfPuzzle, int previous_position)
    {
        if (piceOfPuzzle.id == piceOfPuzzle.position_id)
        {
            countPuzzleSetProperly++;
        }

        else if (piceOfPuzzle.id == previous_position)
        {
            countPuzzleSetProperly--;
        }

        if (countPuzzleSetProperly == images.Length - 1)
        {
            PiceOfPuzzle puzzle = Instantiate(piceOfPuzzlePrefab) as PiceOfPuzzle;
            puzzle.position_id = empty_card_position;
            int id = empty_card_position;
            puzzle.ChangeSprite(id, images[id]);
            float posX = (offsetX * (grid - 1)) + startPos.x;
            float posY = startPos.y - (offsetY * (grid - 1));
            puzzle.transform.position = new Vector3(posX, posY, startPos.z);

            yield return(new WaitForSeconds(2.0f));

            SceneManager.LoadScene(1);
        }
        else
        {
            yield return(null);
        }
    }
예제 #2
0
    public void CanMoved(PiceOfPuzzle piceOfPuzzle)
    {
        bool moved = true;
        int  dif   = empty_card_position - piceOfPuzzle.position_id;

        switch (dif)
        {
        case -1: piceOfPuzzle.transform.position = new Vector3(piceOfPuzzle.transform.position.x - offsetX, piceOfPuzzle.transform.position.y, piceOfPuzzle.transform.position.z); break;

        case 1: piceOfPuzzle.transform.position = new Vector3(piceOfPuzzle.transform.position.x + offsetX, piceOfPuzzle.transform.position.y, piceOfPuzzle.transform.position.z); break;

        case 3: piceOfPuzzle.transform.position = new Vector3(piceOfPuzzle.transform.position.x, piceOfPuzzle.transform.position.y - offsetY, piceOfPuzzle.transform.position.z); break;

        case -3: piceOfPuzzle.transform.position = new Vector3(piceOfPuzzle.transform.position.x, piceOfPuzzle.transform.position.y + offsetY, piceOfPuzzle.transform.position.z); break;

        default: moved = false; break;
        }
        if (moved)
        {
            int temp = piceOfPuzzle.position_id;
            piceOfPuzzle.position_id = empty_card_position;
            empty_card_position      = temp;
            StartCoroutine(CheckMatch(piceOfPuzzle, empty_card_position));
        }
    }