《XNA進階編程:Xbox 360和Windows》2-4/2-5

來源:互聯網
上載者:User


2.4在Xbox 360上試試

     好了,遊戲已經完成了,而且在Windows平台上也做了很多測試。就像我在第一章中解釋的那樣,要在Xbox 360上配置並運行XNA Framework需要幾個關鍵步驟。如果Xbox 360上的XNA Game Launcher已經啟動,您可以試著編譯您的XNA Pong遊戲並把它部署到控制台。

     對於Xbox 360有特別重要的幾點要謹記:

  • 如非必要不要使用任何外部DLL——雖然使用XNA Game DLL是可以的,但大多數Windows平台上的DLL都會調用Windows的系統DLL檔案,而這些系統DLL檔案在Xbox 360平台是無法使用的,而且更糟的是,出於安全考慮在Xbox 360平台上是不支援使用指標方式(P-Invoke)調用非託管DLL檔案的。另外,也不要使用非安全的程式碼或者試圖調用外部代碼、訪問裝置,或者使用不支援的特性,這樣做純粹是浪費時間,您做好按照規則行事。
  • Don’t wait with the testing——開發項目的時候,如果您把輸出設定更改到Xbox 360上,您要測試您的代碼是否能正常編譯,因為您習慣使用的很多方法在Xbox 360上是不存在的。比如,在Xbox 360上動態庫System.dll中是沒有TryParse方法的,還有一些XNA方法和類(例如MouseState類)根本就不受支援,也不存在。
  • 不要直接載入內容——在Windows平台上,藉助Texture2D或CompiledEffect構造器您可以直接載入textures和shaders。而在Xbox 360上這些方法是不存在的,您只能使用內容管道來載入內容。如果您使用動態載入或重新載入textures和shaders代碼的話,它們也只能在Windows平台上工作,所以為Xbox 360構建程式的話要使用標記 #if !XBOX 360…#endif 把這些程式碼封裝含起來。
  • 儲存遊戲並載入其他內容——要儲存遊戲您可以使用Content命名空間以及其他很多輔助類。藉助StorageContaine.TitleLocation(這在Windows平台也可以使用,而且就使用輸出檔案夾)載入內容您要始終確保使用了正確的路徑,從Xbox 360其他位置載入會導致拒絕訪問(Access Denied)異常。
  • 測試解析度——Xbox 360支援很多個人電腦上的解析度方案,所以您至少要測試2到3種來保證遊戲可以正常運行。
  • 允許使用Gamepad操作一切——關於這一點,我所見過的大多數XNA遊戲都犯了一個錯誤,它們要麼只支援鍵盤輸入或者只支援Gamepad輸入,這也就意味著它們要麼只能運行在Windows上,要麼只能運行在Xbox 360上。支援足夠多的裝置對您的遊戲來說是非常有意義的。
  • 在Xbox 360上進行調試和單元測試——在Xbox 360控制台上進行調試和單元測試與在Windows平台上的沒有什麼區別,可以使用相同的規則。或許跟蹤錯誤和記錄錯誤資訊有點難,但使用XNA還是可以進行單步調試和測試單元測試。要好好利用這一點。順便說一句:在Windows平台上,調試的時候如果修改了代碼仍然可以繼續執行,但是對於Xbox 360遊戲卻不能。這一點很不爽,不過一般您都是在Windows平台上完成主要的開發。 

     這個XNA Pong遊戲在編碼時始終考慮到了Xbox 360,您使用的所有方法和特性在Xbox 360上都受支援。所以在Xbox 360上測試這個遊戲並不是什麼大問題,您可以直接部署它,然後運行它,2-11所示:
圖2-11

2.5挑戰:改進您的Pong遊戲

     現在輪到您來對遊戲進行一些改進了,您可以換一換圖片或聲音,或者調整一下遊戲的玩法。如果您有Gamepad,您還可以添加Rumble支援,而且如果您讀本書的話,您的確應該有一個Gamepad控制器,即使您沒有Xbox 360。很多XNA遊戲都需要Xbox 360控制器,而且有些遊戲使用Xbox 360控制器會比使用鍵盤更好玩。

     下面是為Gamepad添加Rumble支援的代碼:

GamePad.SetVibration(PlayerIndex.One, leftRumble, rightRumble);


當球撞倒球拍時,使用上述代碼讓控制器震動一會(leftRumble和rightRumble使用相同的值,這樣整個控制器就會震動)。當玩家失去一條命時也可以震動一下,這次時間可以長一些,並震動得強烈一些。

     您可以查看本章的樣本項目,看看這裡的挑戰方案。您的挑戰方案不必和這相同,不過看一看還是有協助的,或許可以學習一下使用一種更簡單的方式來解決某個特定的問題。

     好好享受您的XNA遊戲吧!

相關文章

聯繫我們

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