public BlockRenderer(Block block, int row, int column)
        {
            this.block = block;
            this.row = row;
            this.column = column;

            Width = Height = block.Board.Screen.ScreenManager.Game.WorldViewport.Width > block.Board.Screen.ScreenManager.Game.WorldViewport.Height ?
                block.Board.Screen.ScreenManager.Game.WorldViewport.Height / 11 :
                block.Board.Screen.ScreenManager.Game.WorldViewport.Width / 11;
        }
Example #2
0
 public void Raise(Block targetBlock)
 {
     State = targetBlock.State;
     Type = targetBlock.Type;
 }
Example #3
0
 // Set the block up to slide with the state it will need once the slide finishes
 public void SetupSlide(BlockSlideDirection direction, Block targetBlock)
 {
     SlideDirection = direction;
     slideTargetState = targetBlock.State;
     slideTargetType = targetBlock.Type;
     slideTargetRendererScale = targetBlock.Renderer.Scale;
     slideTargetRendererAnimationState = targetBlock.Renderer.AnimationState;
 }
Example #4
0
        /// <summary>
        /// Construct the board
        /// </summary>
        /// <param name="graphicsDevice"></param>
        public Board(Screen screen)
        {
            Screen = screen;   

            // Create the board
            Blocks = new Block[Rows, Columns];
            for (int row = 0; row < Rows; row++)
            {
                for (int column = 0; column < Columns; column++)
                {
                    Blocks[row, column] = new Block(this, Screen, row, column);

                    // Only fill the first bottom Rows
                    if (row < initialEmptyRows)
                    {
                        Blocks[row, column].Empty();
                    }
                    else
                    {
                        Blocks[row, column].Create();
                    }
                }
            }

            // Create the next row of Blocks
            NextBlocks = new Block[Columns];
            for (int column = 0; column < Columns; column++)
            {
                NextBlocks[column] = new Block(this, Screen, Rows, column);
                NextBlocks[column].Create();
                NextBlocks[column].State = Block.BlockState.Preview;
            }

            CelebrationManager = new CelebrationManager(this);

            Renderer = new BoardRenderer(this);
            controller = new BoardController(this);
            Stats = new BoardStats(this);

            RaiseRate = (double)Stats.Level / 4;

            // Initialize buttons
            retryButton = new Button(screen, "Retry", Color.White, new Rectangle(Renderer.Rectangle.X + Renderer.Rectangle.Width / 4 - 50, Renderer.Rectangle.Y + Renderer.Rectangle.Height - 150, Renderer.Rectangle.Width / 4, 100), Color.Orange);
            retryButton.Selected += retryButton_Selected;

            doneButton = new Button(screen, "Done", Color.White, new Rectangle(Renderer.Rectangle.X + Renderer.Rectangle.Width / 2 + 50, Renderer.Rectangle.Y + Renderer.Rectangle.Height - 150, Renderer.Rectangle.Width / 4, 100), Color.Orange);
            doneButton.Selected += doneButton_Selected;
        }