diff --git a/Resources/fonts/ChunkFive-Regular.otf b/Resources/fonts/ChunkFive-Regular.otf new file mode 100644 index 000000000..7711f20f9 Binary files /dev/null and b/Resources/fonts/ChunkFive-Regular.otf differ diff --git a/src/GameLogic/Snap.cs b/src/GameLogic/Snap.cs index 42894a1a7..240da811d 100644 --- a/src/GameLogic/Snap.cs +++ b/src/GameLogic/Snap.cs @@ -37,6 +37,7 @@ public class Snap public Snap () { _deck = new Deck (); + _gameTimer = SwinGame.CreateTimer (); } /// @@ -92,6 +93,7 @@ public void Start() _deck.Shuffle (); // Return the cards and shuffle FlipNextCard (); // Flip the first card... + _gameTimer.Start(); } } @@ -112,6 +114,14 @@ public void FlipNextCard() public void Update() { //TODO: implement update to automatically slip cards! + if (_gameTimer.Ticks > _flipTime) + { + _gameTimer.Reset (); + FlipNextCard (); + } + + + } /// @@ -140,9 +150,14 @@ public void PlayerHit (int player) _score[player]++; //TODO: consider playing a sound here... } + else if ( player >= 0 && player < _score.Length) + { + _score[player]--; + } // stop the game... _started = false; + _gameTimer.Stop (); } #region Snap Game Unit Tests diff --git a/src/SnapGame.cs b/src/SnapGame.cs index ec78e9072..2243e0771 100644 --- a/src/SnapGame.cs +++ b/src/SnapGame.cs @@ -10,7 +10,8 @@ public static void LoadResources() { Bitmap cards; cards = SwinGame.LoadBitmapNamed ("Cards", "Cards.png"); - SwinGame.BitmapSetCellDetails (cards, 82, 110, 13, 5, 53); // set the cells in the bitmap to match the cards + SwinGame.BitmapSetCellDetails (cards, 82, 110, 13, 5, 53); + SwinGame.LoadFontNamed ("GameFont", " ChunkFive-Regular.otf", 12); // set the cells in the bitmap to match the cards } /// @@ -24,7 +25,23 @@ private static void HandleUserInput(Snap myGame) if (SwinGame.KeyTyped (KeyCode.vk_SPACE)) { - myGame.FlipNextCard (); + myGame.Start (); + } + if (myGame.IsStarted) + { + if ( SwinGame.KeyTyped (KeyCode.vk_LSHIFT) && + SwinGame.KeyTyped (KeyCode.vk_RSHIFT)) + { + //TODO: add sound effects + } + else if (SwinGame.KeyTyped (KeyCode.vk_LSHIFT)) + { + myGame.PlayerHit (0); + } + else if (SwinGame.KeyTyped (KeyCode.vk_RSHIFT)) + { + myGame.PlayerHit (1); + } } } @@ -40,9 +57,20 @@ private static void DrawGame(Snap myGame) Card top = myGame.TopCard; if (top != null) { - SwinGame.DrawText ("Top Card is " + top.ToString (), Color.RoyalBlue, 0, 20); - SwinGame.DrawText ("Player 1 score: " + myGame.Score(0), Color.RoyalBlue, 0, 30); - SwinGame.DrawText ("Player 2 score: " + myGame.Score(1), Color.RoyalBlue, 0, 40); + SwinGame.DrawText ("Top Card is " + top.ToString (), + SwinGame.DrawCell (SwinGame.BitmapNamed + + ("Cards"), top.CardIndex, 521, 153); + +Color.RoyalBlue, "GameFont", 0, 20); + +SwinGame.DrawText ("Player 1 score: " + + +myGame.Score(0), Color.RoyalBlue, "GameFont", 0, 30); + +SwinGame.DrawText ("Player 2 score: " + + +myGame.Score(1), Color.RoyalBlue, "GameFont", 0, 40); SwinGame.DrawCell (SwinGame.BitmapNamed ("Cards"), top.CardIndex, 350, 50); } else @@ -52,7 +80,7 @@ private static void DrawGame(Snap myGame) // Draw the back of the cards... to represent the deck SwinGame.DrawCell (SwinGame.BitmapNamed ("Cards"), 52, 160, 50); - + SwinGame.DrawCell (SwinGame.BitmapNamed ("Cards"), 52, 155, 153); //Draw onto the screen SwinGame.RefreshScreen(60); }