Bu yazıda temel bir XNA kamera sınıfı oluşturacağız. Bir önceki yazıda yaptığımız fikre benzer şekilde görünüm ve projeksiyon matrislerini hesaplama işlemlerini yapan, tekrar kullanıma müsait bir kamera sınıfı oluşturmak işlerimizi oldukça kolaylaştıracaktır. Bu sınıfı oluştururken en basit iki özelliği, görünüm ve projeksiyon matrislerini, taşıyarak başlayacağız. Ayrıca bundan sonra yazacağımız bütün kamera sınıflarının miras alarak kullanabileceği bir temel sınıf oluşturacağız. Böylece kamera türleri arasında geçiş yapmak oldukça kolay hale gelecek. Bu temel kamera sınıfı miras alan sınıf aksini belirtmedikçe, projeksiyon matrisinin hesaplanmasından da sorumlu olacak. Oluşturacağımız XNA kamera sınıfı en basit haliyle aşağıdaki gibidir. İlerleyen yazılarda bu kamera sınıfına eklemeler yaparak ilerleyeceğiz.
public abstract class Camera { public Matrix View { get; set; } public Matrix Projection { get; set; } protected GraphicsDevice GraphicsDevice { get; set; } public Camera(GraphicsDevice graphicsDevice) { this.GraphicsDevice = graphicsDevice; generatePerspectiveProjectionMatrix(MathHelper.PiOver4); } private void generatePerspectiveProjectionMatrix(float FieldOfView) { PresentationParameters pp = GraphicsDevice.PresentationParameters; float aspectRatio = (float)pp.BackBufferWidth / (float)pp.BackBufferHeight; this.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45), aspectRatio, 0.1f, 1000000.0f); } public virtual void Update() { } }