public IEnumerator TileMoveToOriginalPositionStart(TileScript tile) { resetTileAction(tile); yield return(new WaitForSeconds(0.05f)); Queue <iTweenChainManager.iTweenChainParameter> methodQueue = new Queue <iTweenChainManager.iTweenChainParameter>(); methodQueue.Enqueue(iTweenChainManager.Parameter("MoveTo", tile.gameObject, new Hashtable() { { "isLocal", true }, { "x", tile.GetTileVector().x }, { "y", tile.GetTileVector().y - TileScript.tileSize / 10 }, { "speed", TILE_FELL_SPEED }, { "delay", TILE_DESTROY_DELAY }, { "easetype", "easeOutQuad" } })); methodQueue.Enqueue(iTweenChainManager.Parameter("MoveTo", tile.gameObject, new Hashtable() { { "isLocal", true }, { "x", tile.GetTileVector().x }, { "y", tile.GetTileVector().y }, { "speed", TILE_BOUNCE_SPEED }, { "easetype", "easeOutQuad" }, { "onComplete", "onCompleteTileAction" }, { "onCompleteTarget", gameObject }, { "onCompleteParams", tile } })); iTweenChainManager.instance.Execute(methodQueue); }
private void MoveTile(TileScript moveTile, TileScript destinationTile) { moveTile.Status.SetMoveTime(); destinationTile.IsBlowable = false; destinationTile.SetPosition(moveTile.GetTileVector()); destinationTile.SetTile(moveTile.Status); StartCoroutine(InGameAnimationManager.Instance.MoveAnimation(destinationTile, destinationTile.GetTileVector())); }
private void SwapTiles(TileScript tileClicked, TileScript tileSwapped) { Vector3 tileClickedVector = tileClicked.GetTileVector(), tileSwappedVector = tileSwapped.GetTileVector(); TileStatus tileClickedStatus = tileClicked.Status; MoveTile(tileSwappedVector, tileSwapped.Status, tileClicked); MoveTile(tileClickedVector, tileClickedStatus, tileSwapped); mLastSwappedTiles[0] = tileClicked; mLastSwappedTiles[1] = tileSwapped; }