建置Visual Basic w/ XNA平台

  • 3505
  • 0
  • 2011-10-24

XNA Game Studio 4.0開始支援使用Visual Basic語言來開發Windows Phone遊戲了,讓我們一起進入XNA的世界吧。

XNA Game Studio 4.0開始支援使用Visual Basic語言來開發Windows Phone遊戲了,

讓我們一起進入XNA的世界吧。

 

list_b下載 Windows Phone SDK 7.1 (官方下載連結)

 

Windows Phone SDK 包含內容如下:

-Microsoft Visual Studio 2010 Express for Windows Phone

-Windows Phone Emulator

-Windows Phone SDK 7.1 組件

-Silverlight 4 SDK 和 DRT

-Windows Phone SDK 7.1 Extensions for XNA Game Studio 4.0

-Microsoft Expression Blend SDK for Windows Phone 7

-Microsoft Expression Blend SDK for Windows Phone OS 7.1

-WCF Data Services Client for Windows Phone

-Microsoft Advertising SDK for Windows Phone

 

支援的作業系統:Windows 7;Windows Vista

 

如果想在Windows XP安裝必須進行以下步驟:

Step 1:
將下載的vm_web2.exe解壓
在命令行模式下,输入vm_web2.exe /x

Step 2:
修改baseline.dat文件
找到[gencomp7788]這個節點
修改以下兩行
InstallOnLHS=0
InstallOnWinXP=0

Step 3:
在命令行下,输入setup.exe /web

注意:Windows XP下開發不支援Windows Phone模擬器

 

list_b 建立新專案

Visual Basic>XNA Game Studio 4.0>Windows Phone Game

image

 

選擇Windows Phone的版本,7.1對應的就是芒果機。

image

 

選擇用Windows Phone模擬器,開始偵錯。

image

 

出現模擬器的畫面,成功完成開發環境建置。

screenshot_10-23-2011_2.1.20.393

 

list_b XNA遊戲架構

在這個專案有一個Game1.vb,我們只要覆寫裡面的一些函數就可以很容易的完成一個遊戲。

 

Initialize函數

在Initialize函數裡可以寫一些跟繪圖卡無關的遊戲初始化指令。


Protected Overrides Sub Initialize()
   ' TODO: Add your initialization logic here

   MyBase.Initialize()
End Sub

LoadContent函數

LoadContent函數是用來上載遊戲中需要的資源(包含圖形、模型、字型、音效…等)


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
End Sub

UnloadContent函數

UnloadContent函數是用來釋放資源的,事實上,程式已經使用垃圾回收機制,沒用到的資源會自動回收了。


Protected Overrides Sub UnloadContent()
        ' TODO: Unload any non ContentManager content here
End Sub

 

Update函數

 

Update函數預設一秒會被呼叫30次,也就是每隔1/30秒被呼叫一次,用來撰寫遊戲邏輯、移動物件、偵測玩家輸入動作、判斷碰撞…等的地方。


Protected Overrides Sub Update(ByVal gameTime As GameTime)
        ' Allows the game to exit
        If GamePad.GetState(PlayerIndex.One).Buttons.Back = ButtonState.Pressed Then
            Me.Exit()
        End If

        ' TODO: Add your update logic here
        MyBase.Update(gameTime)
End Sub

 

Draw函數

Draw函數跟Update函數一樣每隔1/30秒被呼叫一次,用來繪製遊戲背景或是其它遊戲物件的地方。


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

        ' TODO: Add your drawing code here
        MyBase.Draw(gameTime)
 End Sub


整個遊戲架構如下:

image

 

以上簡單的把遊戲平台給建置起來了,接下來就可以準備來開發遊戲囉。