private async Task DiagonalSquares(CCFiniteTimeAction rotate, Action callback = null) { if (_isDiagonal) { return; } _isDiagonal = true; playUpLeft.RunAction(rotate); playDownRight.RunAction(rotate); playDownLeft.RunAction(rotate); if (callback != null) { var movecompletedaction = new CCCallFunc(callback); CCSequence mysequence = new CCSequence(rotate, movecompletedaction); playUpRight.RunAction(mysequence); } else { await playUpRight.RunActionAsync(rotate); } }
private async Task RotatePlayButtons(bool clockwise, Action callback) { float timePerMove = 1.5f; //var signalUpLeft = _cordinatesGenerator.PositionAndSquare[PositionInGame.SignalUpLeft]; //var signalUpRight = _cordinatesGenerator.PositionAndSquare[PositionInGame.SignalUpRight]; //var signalDownLeft = _cordinatesGenerator.PositionAndSquare[PositionInGame.SignalDownLeft]; //var signalDownRight = _cordinatesGenerator.PositionAndSquare[PositionInGame.SignalDownRight]; playUpLeft = _cordinatesGenerator.PositionAndSquare[PositionInGame.PlayUpLeft]; playUpRight = _cordinatesGenerator.PositionAndSquare[PositionInGame.PlayUpRight]; playDownLeft = _cordinatesGenerator.PositionAndSquare[PositionInGame.PlayDownLeft]; playDownRight = _cordinatesGenerator.PositionAndSquare[PositionInGame.PlayDownRight]; var moveToUpLeft = new CCMoveTo(timePerMove, new CCPoint(playUpLeft.Position.X, playUpLeft.Position.Y)); var moveToUpRight = new CCMoveTo(timePerMove, new CCPoint(playUpRight.Position.X, playUpRight.Position.Y)); var moveToDownRight = new CCMoveTo(timePerMove, new CCPoint(playDownRight.Position.X, playDownRight.Position.Y)); var moveToDownLeft = new CCMoveTo(timePerMove, new CCPoint(playDownLeft.Position.X, playDownLeft.Position.Y)); var moveCompletedAction = new CCCallFunc(callback); CCSequence mySequence = new CCSequence(moveToDownRight, moveCompletedAction); CCRotateBy rotate = new CCRotateBy(0.5f, 45); var rotateBack = rotate.Reverse(); await DiagonalSquares(rotate); await MoveHalfWay(timePerMove); //var halfMoveCompletedAction = new CCCallFunc(() => //{ _cordinatesGenerator.PositionAndSquare[PositionInGame.PlayUpLeft] = playDownLeft; _cordinatesGenerator.PositionAndSquare[PositionInGame.PlayUpRight] = playUpLeft; _cordinatesGenerator.PositionAndSquare[PositionInGame.PlayDownLeft] = playDownRight; _cordinatesGenerator.PositionAndSquare[PositionInGame.PlayDownRight] = playUpRight; playUpLeft.RunAction(moveToUpRight); playDownRight.RunAction(moveToDownLeft); playDownLeft.RunAction(moveToUpLeft); await playUpRight.RunActionAsync(mySequence); //await DiagonalSquares(rotateBack, callback); //}); //} //else //{ // playUpLeft.RunAction(moveToDownLeft); // playUpRight.RunAction(moveToUpLeft); // playDownRight.RunAction(moveToUpRight); // playDownLeft.RunAction(mySequence); // _cordinatesGenerator.PositionAndSquare[PositionInGame.PlayUpLeft] = playUpRight; // _cordinatesGenerator.PositionAndSquare[PositionInGame.PlayUpRight] = playDownRight; // _cordinatesGenerator.PositionAndSquare[PositionInGame.PlayDownLeft] = playUpLeft; // _cordinatesGenerator.PositionAndSquare[PositionInGame.PlayDownRight] = playDownLeft; //} }