private void TetrisGame_NextTetromino(object sender, NextTetrominoesEventArg e) { if (InvokeRequired) { BeginInvoke(new Action(() => { DrawNextTetromino(e); })); } else { DrawNextTetromino(e); } }
private void DrawNextTetromino(NextTetrominoesEventArg e) { using (var graphics = Graphics.FromImage(nextTetrominoBitmap)) { graphics.Clear(BackColor); var y = 0; foreach (var tetro in e.NextTetrominoes) { foreach (var block in tetro) { DrawSingleBlock(graphics, block.X, block.Y + y, GetColor(block.Status, BackColor), block.Status != BlockStatus.Hidden ? borderColor : hiddenColor); } y += tetrominoWidthHeightBlocks; } } nextTetrominoPicBox.Refresh(); }