quarta-feira, 27 de julho de 2011

Xna 4.0 - Parte 5 - CameraManager

Crie uma nova Câmera na pasta Cameras. Chamada de CameraManager.

Essa classe vai receber todas as câmeras que criarmos e nos dará a possibilidade de trabalharmos mais facimente com as nossas Câmeras. É bem simple e como o código está totalmente comentado vou colocar a classe direto aqui, no próximo Tuto vou ensinar a controlar a câmera usando teclado e mouse:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tutorial1.GameBase.Cameras
{
public class CameraManager
{
#region Variaveis
// Armazena a Câmera ativa
int activeCameraIndex;
CameraBase activeCamera;

// Lista contendo todas as cameras
SortedList cameras;
#endregion

#region Properties

// Indice da camera ativa
public int ActiveCameraIndex
{
get
{
return activeCameraIndex;
}
}

public CameraBase ActiveCamera
{
get
{
return activeCamera;
}
}

public CameraBase this[int index]
{
get
{
return cameras.Values[index];
}
}

public CameraBase this[string id]
{
get
{
return cameras[id];
}
}

public int Count
{
get
{
return cameras.Count;
}
}
#endregion

#region Construtor

public CameraManager()
{
cameras = new SortedList(4);
activeCameraIndex = -1;
}
#endregion

#region Metodos
//Defini qual é a camera ativa
public void SetActiveCamera(int cameraIndex)
{
activeCameraIndex = cameraIndex;
activeCamera = cameras[cameras.Keys[cameraIndex]];
}
//Defini qual é a camera ativa
public void SetActiveCamera(string id)
{
activeCameraIndex = cameras.IndexOfKey(id);
activeCamera = cameras[id];
}

//remove todas as Câmeras e reseta o método
public void Clear()
{
cameras.Clear();
activeCamera = null;
activeCameraIndex = -1;
}

//Adiciona uma Câmera
public void Add(string id, CameraBase camera)
{
cameras.Add(id, camera);

if (activeCamera == null)
{
activeCamera = camera;
activeCameraIndex = cameras.IndexOfKey(id);
}
}

//Remove uma Câmera
public void Remove(string id)
{
cameras.Remove(id);
}
#endregion
}
}

Nenhum comentário:

Postar um comentário