public void RenderShapes(IRender render, IGame game) { var shape = game.ShapeInPlay; try { var shapeGridWidth = shape.ShapeGrid.GetLength(0); for (int i = 0; i < shapeGridWidth; i++) { for (int j = 0; j < shapeGridWidth; j++) { if (shape.ShapeGrid[i, j]) { render.Draw(i + shape.GameGridXPosition, j + shape.GameGridYPosition, shape.ShapeColor); } } } foreach (var block in game.GameGrid.Blocks) { render.Draw(block.X, block.Y, block.ShapeColor); } } catch (NullReferenceException) { } }
protected override void Render(IRender render) { if (_gameState.ActiveShape == null) { return; } foreach (var block in _gameState.ActiveShape.GetBlocks()) { render.Draw(block.XPosition, block.YPosition, block.Color); } foreach (var block in _gameState.DeadBlocks) { render.Draw(block.XPosition, block.YPosition, block.Color); } }
/// <summary> /// 目前暂时先使用单个CommandList,在单线程的情况下提交渲染对象 /// </summary> /// <param name="deltaSeconds"></param> protected virtual void Draw(float deltaSeconds) { globeRender.Draw(); }