//deprecated public void FlipFinal(float delay = 0f, bool withAnimation = true) { /* #region NEW_ADD * int sceneIndex = UnityEngine.SceneManagement.SceneManager.GetActiveScene ().buildIndex; * if (sceneIndex != (int)EScene.SCENE_Demo) { * return; * } #endregion */ Vector3 oldPos = transform.position; if (withAnimation) { _flipActionList.Clear(); FiniteTimeAction delayTime = null; if (delay > 0f) { delayTime = DelayTime.Create(delay); } //上移 FiniteTimeAction mby = MoveBy.Create(0.2f, Vector3.up * 10f); //翻过来 FiniteTimeAction mbt1 = RotateBy.Create(0.2f, Vector3.forward, 180f, Space.Self); //下移到原来的地方 FiniteTimeAction mbt2 = MoveTo.Create(0.2f, oldPos); FiniteTimeAction mbt3 = MoveTo.Create(0.2f, Vector3.up * 5f); FiniteTimeAction mbt4 = RotateTo.Create(0.2f, Vector3.zero); FiniteTimeAction mbt5 = InvokeAction.Create(delegate(GameObject target, object userdata) { //TableController.Instance.SetCurrentPlayedTile (this); }); if (delayTime != null) { _flipActionList.Add(delayTime); } _flipActionList.Add(mby); _flipActionList.Add(mbt1); _flipActionList.Add(mbt2); _flipActionList.Add(mbt3); _flipActionList.Add(mbt4); _flipActionList.Add(mbt5); ActionManager.Instance.RunAction(gameObject, _flipActionList); } else { //transform.Rotate (Vector3.forward, 180f, Space.Self); transform.rotation = Quaternion.identity; transform.position = Vector3.up * 5f; //TableController.Instance.SetCurrentPlayedTile (this); } }
//deprecated public void Flip(float delay = 0f, bool withAnimation = true) { /* #region NEW_ADD * int sceneIndex = UnityEngine.SceneManagement.SceneManager.GetActiveScene ().buildIndex; * if (sceneIndex != (int)EScene.SCENE_Demo) { * return; * } #endregion */ Vector3 oldPos = transform.position; if (withAnimation) { _flipActionList.Clear(); FiniteTimeAction delayTime = null; if (delay > 0f) { delayTime = DelayTime.Create(delay); } //上移 FiniteTimeAction mby = MoveBy.Create(0.2f, Vector3.up * 10f); //翻过来 FiniteTimeAction mbt1 = RotateBy.Create(0.2f, Vector3.forward, 180f, Space.Self); //下移到原来的地方 FiniteTimeAction mbt2 = MoveTo.Create(0.2f, oldPos); if (delayTime != null) { _flipActionList.Add(delayTime); } _flipActionList.Add(mby); _flipActionList.Add(mbt1); _flipActionList.Add(mbt2); ActionManager.Instance.RunAction(gameObject, _flipActionList); } else { transform.Rotate(Vector3.forward, 180f, Space.Self); } }
private bool showPocketList(Transform locator, bool lastGap = true) { TileDef def = null; MahjongTile tile = null; FiniteTimeAction delay = null; FiniteTimeAction rb = null; float angle = 0f; if (_direction == Vector3.right) { //self angle = 0f; } else if (_direction == Vector3.forward) { //right angle = -270f; } else if (_direction == Vector3.left) { //front angle = -180; } else if (_direction == -Vector3.forward) { //left angle = -90f; } for (int i = 0; i < _sortPocketList.Count; ++i) { tile = _sortPocketList [i]; tile.transform.parent = null; tile.Direction = MahjongTile.Face.PLANE_NEGTIVE; tile.transform.Rotate(Vector3.up, angle, Space.Self); tile.transform.parent = locator; tile.transform.localPosition = i * _direction * MahjongTile.Width; } if (lastGap) { tile.transform.localPosition = tile.transform.localPosition + _direction * 0.2f * MahjongTile.Width; } for (int i = 0; i < locator.transform.childCount; ++i) { tile = locator.transform.GetChild(i).GetComponent <MahjongTile> (); List <FiniteTimeAction> list = new List <FiniteTimeAction> (); /* * if (_DelayShowHand > 0f) { * delay = DelayTime.Create (_DelayShowHand); * list.Add (delay); * } */ rb = RotateBy.Create(0.1f, Vector3.right, 180f, Space.Self); list.Add(rb); ActionManager.Instance.RunAction(tile.gameObject, list); } return(true); }
private IEnumerator initDraw(bool banker) { _initDrawFinished = false; float angle = 0f; if (_direction == Vector3.right) { //self angle = 0f; } else if (_direction == Vector3.forward) { //right angle = -270f; } else if (_direction == Vector3.left) { //front angle = -180; } else if (_direction == -Vector3.forward) { //left angle = -90f; } RotateBy rb = null; TileDef def = null; MahjongTile tile = null; Transform locator = PocketLocator; float duration = 0.1f; float waitDuration = 0.3f; int index = 0; int drawCountPerTime = 4; for (int i = 0; i < 4; ++i) { if (i == 3) { drawCountPerTime = 1; } for (int j = 0; j < drawCountPerTime; ++j) { //_pile.PopOneTile (); def = _proxy.PocketList [index]; tile = MahjongTile.Create(def); tile.Direction = MahjongTile.Face.PLANE_NEGTIVE; tile.transform.Rotate(Vector3.up, angle, Space.Self); tile.transform.parent = locator.transform; tile.transform.localPosition = index * _direction * MahjongTile.Width; rb = RotateBy.Create(duration, Vector3.right, 90f, Space.Self); ActionManager.Instance.RunAction(tile.gameObject, rb); //yield return new WaitForSeconds (duration); ++index; } yield return(new WaitForSeconds(waitDuration)); } for (int i = 0; i < locator.childCount; ++i) { tile = locator.GetChild(i).GetComponent <MahjongTile> (); rb = RotateBy.Create(duration, Vector3.right, -90f, Space.Self); ActionManager.Instance.RunAction(tile.gameObject, rb); } yield return(new WaitForSeconds(waitDuration)); //_proxy.SortPocketList (TileDef.Comparison); _sortPocketList = SortMahjongTile(locator); for (int i = 0; i < _sortPocketList.Count; ++i) { tile = _sortPocketList [i]; tile.transform.localPosition = i * _direction * MahjongTile.Width; rb = RotateBy.Create(duration, Vector3.right, 90f, Space.Self); ActionManager.Instance.RunAction(tile.gameObject, rb); } yield return(new WaitForSeconds(waitDuration)); if (banker) { if (_proxy.PocketList.Count == 14) { def = _proxy.PocketList [13]; _proxy.RemovePocketList(def, 1); Draw(def); _drawTile = null; } else { def = TileDef.Create(); Draw(def); _drawTile = null; } } _initDrawFinished = true; }