public void Update(StateMachine.GameStateCodes gameState, int msElapsed) { if (blinking) { blinkLength += msElapsed; if (totalBlinkTime >= maxBlinkTime) { blinking = false; totalBlinkTime = 0; blinkLength = 0; } else { if (blinkLength >= blinkInterval) { blinkStateOn = !blinkStateOn; blinkLength = 0; } } } else { blinkStateOn = true; } pickTime += msElapsed; if (pickTime >= maxPickTime) { picking = false; pickTime = 0; } }
public void Draw(Microsoft.Graphics.Canvas.UI.Xaml.ICanvasAnimatedControl sender, Microsoft.Graphics.Canvas.UI.Xaml.CanvasAnimatedDrawEventArgs args, StateMachine.GameStateCodes gameState) { double screenWidth = sender.Size.Width; double screenHeight = sender.Size.Height; double hStride = System.Math.Floor(screenWidth / 6d); double vStride = System.Math.Floor(screenHeight / 7d); double hLeftover = screenWidth - (6d * hStride); double vLeftover = screenHeight - (7d * vStride); float hMargin = (float)System.Math.Floor(hLeftover / 2d); float vMargin = (float)System.Math.Floor(vLeftover / 2d); for (int i = 0; i < World.Globals.LocationCount; i++) { Arrangements.TileCoordinate coord = tileCoordinateHolder.TileCoordinateFor(i); float x = hMargin + (float)(coord.Column * hStride); float y = vMargin + (float)(coord.Row * vStride); var r = new Windows.Foundation.Rect(x, y, (float)hStride, (float)vStride); CanvasBitmap bitmap = bitmapHolder.BitmapForLocation(i); args.DrawingSession.DrawImage(bitmap, r); if (gameItemHolder.IsBerryAt(i) || gameState == StateMachine.GameStateCodes.StartingUp) { CanvasBitmap berryBitmap = bitmapHolder.BerryBitmap(); args.DrawingSession.DrawImage(berryBitmap, r); } if (gameItemHolder.IsBugAt(i) || gameState == StateMachine.GameStateCodes.StartingUp) { CanvasBitmap bugBitmap = bitmapHolder.BugBitmap(); args.DrawingSession.DrawImage(bugBitmap, r); } if (gameItemHolder.IsPlayerAt(i) || gameState == StateMachine.GameStateCodes.StartingUp) { if (blinkStateOn) { CanvasBitmap playerBitmap; playerBitmap = bitmapHolder.PlayerIdleBitmap(picking); args.DrawingSession.DrawImage(playerBitmap, r); } } } // draw message here // fade it during the update function }