XNA 顯示2D圖形

  • 2625
  • 0

XNA平台使用Texture2D來管理2D圖形,Vector2結構定義2維空間座標,SpriteBatch類別來顯示2D圖形,
包括遊戲背景、遊戲人物、遊戲狀態…等,現在就讓我們練習以這些類別來顯示2D圖形。

XNA平台使用Texture2D來管理2D圖形,Vector2結構定義2維空間座標,SpriteBatch類別來顯示2D圖形
包括遊戲背景、遊戲人物、遊戲狀態…等,現在就讓我們練習以這些類別來顯示2D圖形。

 

圖片資源的準備

XNA支持的圖片格式有jpg、png、tga、dib、hdr、pfm等

先將這Map.png、Wizard.png兩張圖片加入專案

image

 

image

 

在Game1類別宣告四個變數,分別為地圖圖片紋理(Texture2D)、巫師圖片紋理(Texture2D)、地圖圖片位置、巫師圖片位置


Public Class Game1
    Inherits Microsoft.Xna.Framework.Game

    Private WithEvents graphics As GraphicsDeviceManager
    Private WithEvents spriteBatch As SpriteBatch

    Dim map As Texture2D
    Dim wizard As Texture2D
    Dim mapPosition As Vector2 = New Vector2(0, 0)
    Dim wizardPosition As Vector2 = New Vector2(100, 100)
End Class

 

使用Content.Load()來載入資源,(Of Texture2D)是指載入2D圖片,(“Map”)是資源名稱。


 Protected Overrides Sub LoadContent()
     ' Create a new SpriteBatch, which can be used to draw textures.
     spriteBatch = New SpriteBatch(GraphicsDevice)

     ' TODO: use Me.Content to load your game content here
     map = Content.Load(Of Texture2D)("Map")
     wizard = Content.Load(Of Texture2D)("Wizard")
 End Sub

 

繪製圖片要放在Begin()和End()之間,Draw()傳入了圖片紋理、圖片位置、遮罩顏色。


 Protected Overrides Sub Draw(ByVal gameTime As GameTime)
     GraphicsDevice.Clear(Color.CornflowerBlue)

     ' TODO: Add your drawing code here
     spriteBatch.Begin()
     spriteBatch.Draw(map, mapPosition, Color.White)
     spriteBatch.Draw(wizard, wizardPosition, Color.White)
     spriteBatch.End()
     MyBase.Draw(gameTime)
 End Sub

 

程式執行結果如下,有沒有很簡單,接下來是動畫喔! (範例下載)

screenshot_10-24-2011_22.9.57.429