XNA學習筆記—6–進一步的運用遊戲組件並讓它發揮作用

來源:互聯網
上載者:User

上一次我被嚇得腿軟了..這一次好好說,上一次中已經說明了遊戲組件是幹什麼的,怎麼添加,但是這遠遠不夠,因為它是遊戲的第二核心,所以今天,我們就來初步的用它並讓它發揮作用。

首先,建立一個項目並添加一個遊戲組件,改名為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”,然後現在運行遊戲看看,一個貼圖出現在了螢幕上!

這隻是很粗略的認識遊戲組件,它的功能之強大隻能靠我們慢慢的探索去挖掘,而且,可以看出,它本身就可以算是一個具有邏輯、空間、許可權的單一主體,所以用好它不但能讓遊戲有條理,更能讓遊戲的處理速度加快,代碼簡潔,明了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.