Ejemplo n.º 1
0
    public static void AnimateGrid()
    {
        animateTime += (Time.deltaTime * 4);

        for (int i = 0; i < tokensToAnimate.Count; i++)
        {
            Transform TokenTransform = tokensToAnimate[i].transform;
            Vector3   StartPos       = tokenStartPositions[i];
            Vector3   TokenDest      = new Vector3(tokensToAnimate[i].position.x, tokensToAnimate[i].position.y, 0);

            tokensToAnimate[i].transform.position = Vector3.Lerp(tokenStartPositions[i], TokenDest, animateTime);
        }

        if (animateTime >= 1f)
        {
            Debug.Log("======================  Animation Complete  ====================== ");
            foreach (TokenClass token in tokensToAnimate)
            {
                if (TokenGridData.FindMatch(token))
                {
                    List <TokenClass> tkl = TokenGridData.FindLinkedTypes(token);

                    foreach (TokenClass tc in tkl)
                    {
                        Debug.Log(tc + " !null? " + (tc.transform != null).ToString());
                    }

                    Debug.Log("======================  Destroy  ======================");

                    foreach (TokenClass tc in tkl)
                    {
                        if (tc.transform != null)
                        {
                            Destroy(tc.transform.gameObject);

                            QuitButton.score += ((int)tc.type) * 1000000 + Random.Range(1, 999999);

                            tc.transform = null;
                            TokenGridData.destroyedTokens[tc.position.x] += 1;
                        }
                    }

                    tkl.Clear();
                }
            }

            tokensToAnimate.Clear();
            tokenStartPositions.Clear();
            animateTime = 0;

            TokenGridData.SettleAndSpawnTokens();

            if (tokensToAnimate.Count == 0)
            {
                TokenGridManager.animating = false;
            }
        }
    }
Ejemplo n.º 2
0
    void PlayerInput()
    {
        Vector3 MouseInWorld = Camera.main.ScreenToWorldPoint(Input.mousePosition);

        //offset by half token as tokens grid is on token center
        int mX = (int)(MouseInWorld.x + 0.5f);
        int mY = (int)(MouseInWorld.y + 0.5f);

        //Check that the click is on the grid
        if (mouseIsInTokenGrid(mX, mY))
        {
            Highlight.GetComponent <SpriteRenderer>().enabled = true;
            Highlight.transform.position = new Vector3(mX, mY, Highlight.transform.position.z);

            if (Input.GetButtonUp("Fire1"))
            {
                //if we do not have a token selected, selected the one under the mouse position
                if (selectedToken == null && TokenGridData.IsValidToken(new GridPos(mX, mY)))
                {
                    SetSelectedToken(new GridPos(mX, mY));
                }
                //if we do already have a selected token, check if we are clicking an adjecent one
                else if (TokenGridData.TokensAreValidForSwap(selectedToken, new GridPos(mX, mY)))
                {
                    TokenGridData.SwapToken(new GridPos(selectedToken.x, selectedToken.y), new GridPos(mX, mY));

                    //GridRenderer.GetComponent<TokenGridRenderer>().RenderGrid();
                    SetSelectedToken(null);
                }
            }
        }
        else
        {
            Highlight.GetComponent <SpriteRenderer>().enabled = false;
        }

        if (Input.GetButtonDown("Fire2"))
        {
            SetSelectedToken(null);
        }
    }
Ejemplo n.º 3
0
    // Start is called before the first frame update
    void Start()
    {
        TokenGridData.CreateNewGrid(Level1);

        this.transform.GetComponent <TokenGridRenderer>().RenderGrid();
    }