2008年10月25日 星期六

XNA - CameraManager In Game Programming From Novice to Professional

XNA - CameraManager In Game Programming From Novice to Professional

但如果要用到索引值,而且後續會加入攝影機的狀況下,問題就會發生了。
解決的方式很多種,最小更動的方式就是在 Add 時更新索引值:

public void Add(String id, ICamera camera)
{
String activeCam = null;
if (this.activeCamera != null)
{
// 記錄原本活動中的攝影機名字
activeCam = this.cameras.Keys[this.activeCameraIndex];
}

this.cameras.Add(id, camera);

if (this.activeCamera == null)
{
this.activeCamera = camera;
this.activeCameraIndex = this.cameras.IndexOfKey(id);
}
else
{
// 重新設定攝影機
this.SetActiveCamera(activeCam);
}
}

藍字的部分是新加入的 code,笨笨的,但是簡單明瞭
其他像是阻止進行排序,或者乾脆別用 Sort 系列的集合等等…
嘛~

沒有留言: