GameCompoment類別,中文翻作遊戲元件。
如下所示,將這個類別實例丟進Compoment集合裡,則遊戲會自動去呼叫GameCompoment 裡的Update,DrawableGameCompoment則是會自動呼叫Update與Draw。
Game.Compoment.Add(GameCompoment Instance);
但是!他僅僅會自動呼叫Update與Draw而已喔,所以你要做一些可以模組化使用的Compoment的話,要注意初始化的問題,只有在建構函示裡才有辦法進行初始化(或者自己加個判斷式),不管你的初始化放在覆寫的Initialize()或是LoadContent()裡,程式都不會呼叫。
另外,Game.Compoment這個東西可以把它看成List(事實上也是...),不過它的內部功能有點糟糕,因為沒辦法有效率的管理每個Compoment(主要就是沒辦法用Collect的方式清除啦XD),如果善用這個東西可以節省很多Coding的時間,雖然官方的範例也幾乎沒再用....
官方的範例大部分都是自己用一個List,然後搭配一堆利用繼承覆寫Update跟Draw的類別,只用一個DrawableGameCompoment遍歷所有的Update與Draw。
這樣寫好處是很模組化,但是整個流程會很亂...,亂倒無從修改,而且相當的複雜。
白白的浪費了Compoment的好用之處。