Windows Phone 7開發教程(2)——Windows Phone XNA 4.0 3D遊戲開發

來源:互聯網
上載者:User

程式碼編譯環境Visual Stuido 2010, Windows Phone 7 SDK, XNA 4.0 Game Studio, 下載連結:

http://files.cnblogs.com/aawolf/XNA_aawolf_3D.rar

今天有點空餘時間,在看Windows Phone 7的開發。看到Silverlight for phone和XNA 4.0的開發文章已經有了不少,而且品質很高。我就來說說XNA 4.0 的3D開發這個領域吧,正好跟目前的工作有些關係,而且XNA 4.0的3D類庫設計 的非常好,比iPhone和Android的OpenGLES類庫高出一個檔次。以後學習3D開發 ,用XNA類庫也是個不錯的選擇,而且Windows Phone模擬器對3D的支援也非常好 。唯一的遺憾是,Windows Phone不支援C++的3D開發。

如果做過Zune上XNA 3.1開發的朋友可能會記得,在XNA 3.1中是不支援3D開 發的,XNA 4.0中加入的3D支援類,主要包含在 Microsoft.Xna.Framework.Graphics命名空間中。如果XNA 4.0中的3D概念與 OpenGLES十分相似,我們可以找到很多相對應的函數、方法等,某種意義上, XNA 4.0的3D支援是對OpenGLES 2.0的封裝。

一.一個簡單的3D程式

我們就從一個簡單的3D程式開始吧,這個程式的原來介紹在下面這個連結裡 。

http://msdn.microsoft.com/en-us/library/bb203926.aspx

不過移植到Windows Phone 7上時,還是遇到了一些小問題,有的是文檔的問 題,有的是介面變化。如何在Visual Studio 2010裡建立XNA 4.0的工程就不多 說了,大家可以參考我寫的《Windows Phone開發工具初體驗》,連結如下:

http://www.cnblogs.com/aawolf/archive/2010/08/28/1811438.html

XNA 4.0的程式是派生自Microsoft.Xna.Framework.Game的類,開發人員需要重 載Game的四個方法:Initialize(初始化)、LoadContent(載入內容)、 UnloadContent(卸載內容)、Update(更新)和Draw(繪製)等方法。

首先,我們在Game1類中加入所需要的一些私人變數:

Matrix worldMatrix;

Matrix viewMatrix;

Matrix projectionMatrix;

VertexPositionNormalTexture[] cubeVertices;

VertexDeclaration vertexDeclaration;

VertexBuffer vertexBuffer;

BasicEffect basicEffect;

Martrix 的中文名叫“矩陣”,還有個翻譯叫“駭客帝國”……扯遠了,什 麼是矩陣?我們就不解釋了,只要知道矩陣是一切3D線性變化的基礎就可以了。 我們不知道矩陣是什麼,卻身處其中。在Game1類中用了三個矩陣:worldMatrix 用來描述全局座標系;viewMatrix用來描述攝影機座標系;projectionMatrix用 來描述投影座標系。這些都是3D圖形學的概念,不解釋了。

另外兩個重要的變數是vertexBuffer和basicEffect。vertexBuffer包含了一 系列的向量,這些向量構成了我們要顯示的正方體的各個頂點;basicEffect用 來描述一個基礎的渲染效果,其中描述了座標系、顏色和燈光等基本的要素,這 些要素是3D圖形顯示的基礎。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.