Beispiel #1
0
        /// <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");
            }
        }
Beispiel #2
0
        // 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);
                }
            }
        }
Beispiel #3
0
 /// <summary>
 /// Registers the given event handler
 /// </summary>
 /// <param name="handler">the event handler</param>
 private void RegisterEventHandler(CorrectGuessEventHandler handler)
 {
     correctGuessEvent.Register(handler);
 }
Beispiel #4
0
 /// <summary>
 /// Register the given event handler
 /// </summary>
 /// <param name="handler">the event handler</param>
 public void Register(CorrectGuessEventHandler handler)
 {
     eventHandlers += handler;
 }