上一次我被嚇得腿軟了..這一次好好說,上一次中已經說明了遊戲組件是幹什麼的,怎麼添加,但是這遠遠不夠,因為它是遊戲的第二核心,所以今天,我們就來初步的用它並讓它發揮作用。
首先,建立一個項目並添加一個遊戲組件,改名為GC1.cs
相信大家都已經會了(如果不會請看上一次的);
並且把他的代碼修改為這樣
那麼我們就開始研究這個Compoment的作用
在GC1中添加如下代碼,稍後我進行解釋
注意!相信認真跟著我“演練”前幾次的都會發現這兩段代碼出奇的眼熟,沒錯,他就是GAME中的幾個重要Void,Draw和Loadcontent,那麼同樣的,它的下方還有Update等,這些的功能完全一樣,那麼這裡就可以看出遊戲組件是一個獨立的遊戲部分,但又歸屬於整體,就像控制項與表單一樣。
但是有一些運用還是與Game有差別的,下面我就來介紹差別何在:
先申明2個變數
在空白部分添加:
Texture2D Text2d;
SpriteBatch SBC;
然後修改Loadcontent方法如下。
///////注意,文中Windtile1是本人的一張圖片,您可以根據Content中存在的圖片填寫名稱,如有不清楚的請參照前幾篇。有詳細介紹。
說明一下,Spritebatch變數在Game中已經定義,但遊戲組件中並沒有事先說明,所以就要自己進行定義。
細心的人可能還會發現Text2d的指派陳述式略有差別,Content前面有了Game?因為Game.content是遊戲儲存資料的唯一空間,所以在這裡最好要寫。
然後,就是最後幾步,現在這樣這個組件並沒有被調用,應為他還沒有被執行個體化。
在Game1.cs中添加如下語句:
他們的意思分別是
執行個體化GC1
然後將它添加到Compoments裡面來讀取,調用
最後修改代碼
這很重要,這代表著GC1執行個體化所屬於的容器,也就是遊戲本身“this”,然後現在運行遊戲看看,一個貼圖出現在了螢幕上!
這隻是很粗略的認識遊戲組件,它的功能之強大隻能靠我們慢慢的探索去挖掘,而且,可以看出,它本身就可以算是一個具有邏輯、空間、許可權的單一主體,所以用好它不但能讓遊戲有條理,更能讓遊戲的處理速度加快,代碼簡潔,明了。