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; } } }
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); } }
// Start is called before the first frame update void Start() { TokenGridData.CreateNewGrid(Level1); this.transform.GetComponent <TokenGridRenderer>().RenderGrid(); }