public PlayingField(GraphicsDevice graphicsDevice, Texture2D texture) { _effect = new BasicEffect(graphicsDevice); _texture = texture; var field = PlayingFields.GetQ(); Floors = field.Count; Height = field[0].Length; Width = field[0][0].Length; TheField = new PlayingFieldSquare[Floors, Height, Width]; var builder = new PlayingFieldBuilder(TheField); for (var i = 0; i < field.Count; i++) { builder.ConstructOneFloor( i, field[i]); } var verts = new List <VertexPositionNormalTexture>(); var vertsShadow = new List <VertexPositionColor>(); for (var z = 0; z < Floors; z++) { for (var y = 0; y < Height; y++) { for (var x = 0; x < Width; x++) { if (!TheField[z, y, x].IsNone) { var start = x; //for (x++; x < width && TheField[z, y, x - 1].PlayingFieldSquareType == TheField[z, y, x].PlayingFieldSquareType; x++) // ; x++; foobar(verts, vertsShadow, z, start, y, x - start, 1, TheField[z, y, x - 1].Corners); x--; } } } } VertexBuffer = new VertexBuffer(graphicsDevice, typeof(VertexPositionNormalTexture), verts.Count, BufferUsage.None); VertexBuffer.SetData(verts.ToArray(), 0, verts.Count); VertexBufferShadow = new VertexBuffer(graphicsDevice, typeof(VertexPositionColor), vertsShadow.Count, BufferUsage.None); VertexBufferShadow.SetData(vertsShadow.ToArray(), 0, vertsShadow.Count); }
public PlayingField(GraphicsDevice graphicsDevice, Texture2D texture) { _effect = new BasicEffect(graphicsDevice); _texture = texture; var field = PlayingFields.GetQ(); Floors = field.Count; Height = field[0].Length; Width = field[0][0].Length; TheField = new PlayingFieldSquare[Floors, Height, Width]; var builder = new PlayingFieldBuilder(TheField); for (var i = 0; i < field.Count; i++) builder.ConstructOneFloor( i, field[i]); var verts = new List<VertexPositionNormalTexture>(); var vertsShadow = new List<VertexPositionColor>(); for (var z = 0; z < Floors; z++) for (var y = 0; y < Height; y++ ) for (var x = 0; x < Width; x++) if (!TheField[z, y, x].IsNone ) { var start = x; //for (x++; x < width && TheField[z, y, x - 1].PlayingFieldSquareType == TheField[z, y, x].PlayingFieldSquareType; x++) // ; x++; foobar(verts, vertsShadow, z, start, y, x - start, 1, TheField[z, y, x - 1].Corners); x--; } VertexBuffer = new VertexBuffer(graphicsDevice, typeof(VertexPositionNormalTexture), verts.Count, BufferUsage.None); VertexBuffer.SetData(verts.ToArray(), 0, verts.Count); VertexBufferShadow = new VertexBuffer(graphicsDevice, typeof(VertexPositionColor), vertsShadow.Count, BufferUsage.None); VertexBufferShadow.SetData(vertsShadow.ToArray(), 0, vertsShadow.Count); }