public void WindowSizeChanged() { if (GameWindowData.CardHeight / GameWindowData.CardWidth > 1.4) { GameWindowData.CardHeight = GameWindowData.CardWidth * 1.4; } else { GameWindowData.CardWidth = GameWindowData.CardHeight / 1.4; } GameImages.SetImageSize(GameWindowData.CardWidth, GameWindowData.CardHeight); //change distance GameWindowData.CardGameFaceDistance = GameWindowData.CardHeight / 5; GameWindowData.CardDeckDistance = GameWindowData.CardWidth / 4; GameWindowData.CardGameBackDistance = GameWindowData.CardGameFaceDistance / 2; bool lastShowedFace = false; double cardDistance = 0; for (int iCol = 0; iCol < GameColumns.ColGame.Length; iCol++) { for (int iCard = 0; iCard < GameColumns.ColGame[iCol].Count; iCard++) { //if the previos card was not visible if (iCard != 0) { if (!lastShowedFace) { cardDistance += GameWindowData.CardGameBackDistance; } else { cardDistance += GameWindowData.CardGameFaceDistance; } } lastShowedFace = GameColumns.ColGame[iCol][iCard].IsShowedFace; GameColumns.ColGame[iCol][iCard].Margin = new Thickness(0, cardDistance, 0, 0); } cardDistance = 0; lastShowedFace = false; } AlignDeckSequence(GameColumns.ColDeck); }
public GameProcess(Grid grid) { GameWindowData = new GameWindowData(); GameData = new GameData(); _history = new History(); _grid = grid; //additional data GameWindowData.iGridColDeck = 1; GameWindowData.iGridColKing = grid.ColumnDefinitions.Count / 2 + 1; GameWindowData.iGridColJoker = grid.ColumnDefinitions.Count - 2; this.GameImages = new GameImages(_grid, GameWindowData); this.GameColumns = new GameColumns(AlignDeckSequence); Timer = new System.Windows.Threading.DispatcherTimer(); Timer.Tick += timerTick; Timer.Interval = new TimeSpan(0, 0, 1); GameImages.SetEvents(card_MouseDown, card_Drop, Deck_MouseUp); }