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
#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
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