Witam,mam pewien problem z XNA,otóż mam następującą klasę Floor
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace XNA_First_Person_Camera
{
class Floor
{
//Atrybuty - Attributes
private int floorWidth;
private int floorHeight;
private VertexBuffer floorBuffer;
private GraphicsDevice device;
private Color[] floorColors = new Color[2] { Color.White, Color.Black };
//Konstruktor
public Floor(GraphicsDevice device, int width, int height)
{
this.device = device;
this.floorWidth = width;
this.floorHeight = height;
BuildFloorBuffer();
}
//Buduje Vertex Buffer
private void BuildFloorBuffer()
{
List<VertexPositionColor> vertexList = new List<VertexPositionColor>();
int counter = 0;
//Pętla tworząca podłoge
for (int x = 0; x < floorWidth; x++)
{
counter++;
for (int z = 0; z < floorHeight; z++)
{
counter++;
//Pętla tworząca wierzchołki
foreach (VertexPositionColor vertex in FloorTile(x, z, floorColors[counter % 2]))
{
vertexList.Add(vertex);
}
}
}
//Tworzy Buffer
floorBuffer = new VertexBuffer(device,VertexPositionColor.VertexDeclaration,vertexList.Count,BufferUsage.None);
floorBuffer.SetData<VertexPositionColor>(vertexList.ToArray());
}
//Definiuje pojedyńczą komórkę w naszej podłodze
private List<VertexPositionColor> FloorTile(int xOffset, int zOffset, Color TileColor)
{
List<VertexPositionColor> vList = new List<VertexPositionColor>();
vList.Add(new VertexPositionColor(new Vector3(0 + xOffset, 0, 0 + zOffset), TileColor));
vList.Add(new VertexPositionColor(new Vector3(1 + xOffset, 0, 0 + zOffset), TileColor));
vList.Add(new VertexPositionColor(new Vector3(0 + xOffset, 0, 1 + zOffset), TileColor));
vList.Add(new VertexPositionColor(new Vector3(1 + xOffset, 0, 0 + zOffset), TileColor));
vList.Add(new VertexPositionColor(new Vector3(1 + xOffset, 0, 1 + zOffset), TileColor));
vList.Add(new VertexPositionColor(new Vector3(0 + xOffset, 0, 1 + zOffset), TileColor));
return vList;
}
//Metoda rysująca
public void Draw(Camera camera, BasicEffect effect)
{
effect.VertexColorEnabled = true;
effect.View = camera.View;
effect.Projection = camera.Projection;
effect.World = Matrix.Identity;
//Pętla rysująca Wierzchołki
foreach (EffectPass pass in effect.CurrentTechnique.Passes)
{
pass.Apply();
device.SetVertexBuffer(floorBuffer);
device.DrawPrimitives(PrimitiveType.TriangleList, 0, floorBuffer.VertexCount / 3 );
}
}
}
}
I gdy się włącza grę to wyświetla się szachownica po czym za pośrednictwem innej klasy mogę się po niej poruszać.na razie wszystko działa ok,ale jeżeli spojrzę na szachownice pod innym kątem,tak aby np.widzieć ją od dołu,albo zobaczyć bok,to ona znika,a ja starałbym się tego unikać,wie ktoś jakich zmian muszę dokonać ?