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; }
public void Raise(Block targetBlock) { State = targetBlock.State; Type = targetBlock.Type; }
// 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; }
/// <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; }