/// <summary> /// Constructor /// </summary> /// <param name="contentManager">the content manager</param> /// <param name="center">the center of the tile</param> /// <param name="sideLength">the side length for the tile</param> /// <param name="number">the number for the tile</param> /// <param name="correctNumber">the correct number</param> public NumberTile(ContentManager contentManager, Vector2 center, int sideLength, int number, int correctNumber, CorrectGuessEventHandler handleCorrectGuessEvent) { // set original side length field this.originalSideLength = sideLength; // register the given event handler RegisterEventHandler(handleCorrectGuessEvent); // load content for the tile and create draw rectangle LoadContent(contentManager, number); drawRectangle = new Rectangle((int)center.X - sideLength / 2, (int)center.Y - sideLength / 2, sideLength, sideLength); // start timers blinkingTimer.Start(); shrinkingTimer.Start(); frameBlinkingTimer.Start(); // set isCorrectNumber flag isCorrectNumber = number == correctNumber; // Increment 5: load sound effect field to correct or incorrect sound effect // based on whether or not this tile is the correct number if (isCorrectNumber) { soundEffect = contentManager.Load <SoundEffect>(@"audio\explosion"); } else { soundEffect = contentManager.Load <SoundEffect>(@"audio\loser"); } }
// sound effects #endregion #region Constructors /// <summary> /// Constructor /// </summary> /// <param name="contentManager">the content manager</param> /// <param name="center">the center of the board</param> /// <param name="sideLength">the side length for the board</param> /// <param name="correctNumber">the correct number</param> public NumberBoard(ContentManager contentManager, Vector2 center, int sideLength, int correctNumber, CorrectGuessEventHandler handleCorrectGuessEvent) { // Increment 2: load content for the board and create draw rectangle LoadContent(contentManager); drawRectangle = new Rectangle( (int)center.X - sideLength / 2, (int)center.Y - sideLength / 2, sideLength, sideLength); // Increment 2: calculate side length for number tiles tileSideLength = (sideLength - (NumColumns + 1) * BorderSize) / NumColumns; // Increments 3 and 5: initialize array of number tiles for (int i = 0; i < NumRows; i++) { for (int j = 0; j < NumColumns; j++) { tiles[i, j] = new NumberTile(contentManager, CalculateTileCenter(i, j), tileSideLength, i * NumColumns + j + 1, correctNumber, handleCorrectGuessEvent); } } }
/// <summary> /// Registers the given event handler /// </summary> /// <param name="handler">the event handler</param> private void RegisterEventHandler(CorrectGuessEventHandler handler) { correctGuessEvent.Register(handler); }
/// <summary> /// Register the given event handler /// </summary> /// <param name="handler">the event handler</param> public void Register(CorrectGuessEventHandler handler) { eventHandlers += handler; }