首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

XNA 入門教學 (一):框架介紹與第一個遊戲專案

     編輯:關於.NET

XNA Framework 建構於 .NET Framework 2.0 之上,提供跨平台 (Windows/Xbox 360/Zune) 的 Managed 遊戲開發環境,封裝底層 DirectX 細節,大幅提升開發效率,適合 .NET 開發者入門遊戲程式設計。

環境建置

  • 最新版本 XNA 3.1 (需 VS2008 或 Express 版)。
  • 推薦參考書:《Learning XNA 3.0》、《XNA 3.0 Game Programming Recipes》、《Beginning XNA 3.0 Game Programming》。

遊戲迴圈架構

每個 Game 衍生類別包含四個核心虛擬方法,形成訊息迴圈:

方法用途
Initialize遊戲物件初始化
LoadContent載入圖片、音效、模型等資源
Update邏輯運算、輸入處理、物理模擬 (預設 60 FPS)
Draw畫面繪製

第一個專案:顯示圖片與自訂滑鼠游標

  1. 建立 Windows Game 專案,編譯執行 → 藍色 CornflowerBlue 背景。
  2. 在 Content 專案加入圖片 old english sheepdog.png,Importer/Processor 設為 Texture - XNA Framework (編譯為 .xnb)。
  3. 宣告 Texture2D img;,在 LoadContent 載入:img = Content.Load<Texture2D>("old english sheepdog");
  4. Draw 中繪製:
spriteBatch.Begin();
spriteBatch.Draw(img, new Rectangle(0, 0, 50, 50), Color.White);
spriteBatch.End();

注意:所有 Draw 呼叫必須在 spriteBatch.Begin()/End() 之間,且一個 Game 只建議使用一個 SpriteBatch。

自訂滑鼠游標

Point mousePos;
protected override void Update(GameTime gameTime)
{
    MouseState ms = Mouse.GetState();
    mousePos = new Point(ms.X, ms.Y);
    base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
    // ...
    spriteBatch.Draw(img, new Rectangle(mousePos.X, mousePos.Y, 50, 50), Color.White);
    // ...
}

或在 Initialize 設定 IsMouseVisible = true 直接使用系統游標。

Content Pipeline 補充

  • 資源經 Microsoft.Xna.Framework.Content.Pipeline 編譯為 .xnb 二進位格式。
  • Windows 與 Xbox 360 的資源編譯結果不相容,需分別編譯。
  • 原生不支援 GIF,需自行實作 Importer/Processor。

總結

完成第一個 XNA 專案:載入貼圖、繪製至螢幕、處理滑鼠輸入。下一章將加入鍵盤控制與移動邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved