diff --git a/Resources/fonts/chunkfive (1).zip b/Resources/fonts/chunkfive (1).zip
new file mode 100644
index 000000000..df4009f42
Binary files /dev/null and b/Resources/fonts/chunkfive (1).zip differ
diff --git a/src/GameLogic/Snap.cs b/src/GameLogic/Snap.cs
index 42894a1a7..0ecb360d2 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 ();
}
///
@@ -91,7 +92,8 @@ public void Start()
_started = true;
_deck.Shuffle (); // Return the cards and shuffle
- FlipNextCard (); // Flip the first card...
+ FlipNextCard ();
+ _gameTimer.Start(); // Flip the first card...
}
}
@@ -110,7 +112,13 @@ public void FlipNextCard()
/// the game to update its internal state.
///
public void Update()
+
{
+ if (_gameTimer.Ticks > _flipTime)
+{
+_gameTimer.Reset ();
+FlipNextCard ();
+}
//TODO: implement update to automatically slip cards!
}
@@ -140,9 +148,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..02216543e 100644
--- a/src/SnapGame.cs
+++ b/src/SnapGame.cs
@@ -11,7 +11,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.LoadFontNamed ("GameFont", " ChunkFive-Regular.otf", 12);
+ }
///
/// Respond to the user input -- with requests affecting myGame
@@ -24,8 +25,27 @@ 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,18 +60,34 @@ 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 (),
+
+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);
+
+ SwinGame.DrawCell (SwinGame.BitmapNamed
+
+("Cards"), top.CardIndex, 521, 153);
}
else
{
SwinGame.DrawText ("No card played yet...", Color.RoyalBlue, 0, 20);
}
+ SwinGame.DrawCell (SwinGame.BitmapNamed ("Cards"),
+
+52, 155, 153);
+
// Draw the back of the cards... to represent the deck
- SwinGame.DrawCell (SwinGame.BitmapNamed ("Cards"), 52, 160, 50);
+ // SwinGame.DrawCell (SwinGame.BitmapNamed ("Cards"), 52, 160, 50);
//Draw onto the screen
SwinGame.RefreshScreen(60);