Time of Update: 2018-12-07
3.9挑戰:改進Breakout遊戲 您可以嘗試給玩家設定更多的生命次數,還可以像上一章那樣添加一個遊戲菜單。您也可以把Breakout遊戲作為一個測試平台,來檢驗目前已經實現的輔助類。例如,玩家每次升級或者打碎了一個磚塊的時候,可以寫一條日誌訊息記錄下來。
Time of Update: 2018-12-07
3.10本章摘要 本章您學習到了大量的類,它們在以後的項目中會非常有用。單元測試也是一個很重要的知識點,以寫單元測試開始遊戲的開發會是個不錯的選擇。本章最後介紹了Breakout遊戲。本章內容很多,不過幸好您可以跳過一些Breakout遊戲的知識點,因為很多部分都可以重用上一章的Pong遊戲。
Time of Update: 2018-12-07
4.1本章概覽 本章主要討論Game類的基本原理以及遊戲組件的相關概念。下一章您將開發自己的映像引擎,但在這之前您還需要幾個新的輔助類。其中BaseGame類用來實現更多的特性,而且它會使用到目前所有其他輔助類。該類繼承自Game類(Microsoft.Xna.Framework.Game),以便使用所有現有的XNA特性。同樣地,主測試類別TestGame繼承自BaseGame,用來執行遊戲中的靜態單元測試。另外還有TextureFont類,讓您可以在螢幕上繪製文本,which is
Time of Update: 2018-12-07
4.2 Game類 前幾章您已經使用過了Game類,但這些章主要講的是從Program類和單元測試中調用Run方法來啟動遊戲,以及如何使用Initialize、Update和Draw等方法,並沒有討論基本的設計。當然,如果做的只是一些簡單的遊戲,掌握這些知識就夠了。但隨著遊戲的規模逐漸層大以及需要更多的遊戲特性,您或許就需要好好考慮遊戲類的設計了。
Time of Update: 2018-12-07
4.3遊戲組件
Time of Update: 2018-12-07
4.6 挑戰:製作NextBlock遊戲組件 本章並沒有真正地去討論NextBlock遊戲組件,這樣做是有理由的,因為我希望您自己去建立它。在本書的原始碼中,NextBlock類是空的,您的任務就是去填充它並使之運行。本遊戲中,NextBlock遊戲組件已經被添加到了TetrisGrid類中,您也已經看到了所有的方法。如果您在實現自己的方式時有疑問,可以查看我寫的XNA
Time of Update: 2018-12-07
4.7 本章摘要 現在,您的小規模的遊戲引擎擁有了三個新的命名空間,並且擁有很多將來項目中可以使用的輔助類,而其中TextureFont類對接下來的幾章將特別有用。它不僅可以用於顯示類似記分板這樣的遊戲資料,還可以用於單元測試。在單元測試中,它可以顯示一些協助性的文字告訴玩家所有可用的熱鍵,尤其當您遇到問題時,還可以顯示測試及調試資訊。例如,一個camera類的單元測試可以輸出camera的位置資料以及旋轉資料,這樣就可以知道在測試進行的時候到底都發生了什麼。
Time of Update: 2018-12-07
2.6問題解答 希望本章不會有太多的難題。本章主要接觸了兩個主要問題:單元測試和Sprites。或許在Xbox 360上運行遊戲您還有些問題,我已經在第一章的結尾處寫了一些提示和技巧,您可以去看看。 另外一個問題是理解為什麼會拋出異常,並且要如何解決它。大多數人都不會有這樣的問題,但對於少數不熟悉異常尤其是XNA異常的人來說卻是個問題。您要緊盯著異常,查看完整的堆疊追蹤,看看是否有帶有詳細描述資訊的內部異常。 就像託管的DirectX,有時您會遇到底層DirectX
Time of Update: 2018-12-07
前言 直到最近,把Xbox 360當作一個平台來開發家用遊戲才成為可能。對於大多數人來說,建立控制台遊戲是絕對不可能的,不僅因為SDK很貴,還因為根本就得不到這樣的SDK,或者沒有任何的開發資訊可以使用。 這一切都已經改變了。微軟新發布的XNA Framework使得開發家用跨平台(Windows和Xbox
Time of Update: 2018-12-07
第三章 輔助類3.1本章概覽 我通常會把很多有用的小工具和類集中放在一個Helper命名空間中,慢慢地它們會變得非常有用。對於一個單一的項目來說,它們或許並不是最重要或最有使用價值的代碼,但因為它們會被反覆地使用,所以不管引擎的其它部分是否發生變化,輔助類總是引擎或項目中最穩定的部分。大多數輔助類和遊戲編程都沒有太大的關係,它們可以用於其它項目,甚至是Web應用。
Time of Update: 2018-12-07
1.5問題解答 現在您已經知道了所有如何開始第一個XNA遊戲項目的知識,如果您通讀了本章內容,我強烈建議到www.wiley.com下載本章的範例程式碼並運行它。 如果您在安裝DirectX、.Net 2.0或者XNA時有任何問題,可以到XNA論壇http://msdn.microsoft.com/xna/forums 尋求協助。在書中給出所有的解答很困難,因為有很多不同的問題會出現。總的來說,您要符合最低的安裝要求。比如,如果嘗試在一個不受支援的平台上安裝並且失敗了,
Time of Update: 2018-12-07
第二章 建立第一個遊戲-Pong2.1本章概覽 這一章主要討論設計並建立一個簡單的Pong遊戲。Pong是很久以前的一個視頻遊戲,甚至在60年代第一批Pong版本出現之前就已經有了一個可以在示波鏡(Oscilloscope)上玩的版本(1958年William A. Higinbotham創作的Tennis for Two),這就是說要實現一個最基礎的Pong遊戲是很簡單的事情。有一個名叫Ralph
Time of Update: 2018-12-07
2.2遊戲構思 討論類似Pong這樣的遊戲的遊戲構思聽起來有些可笑,不過我會盡量將事情一般化來處理。在您開始編碼之前有一件事非常重要,那就是您要仔細考慮您的遊戲外觀是什麼樣子,以及玩起來會有什麼感受。遊戲項目越大,設計過程就越重要。但我不是說如果您沒有任何想法就不能寫遊戲或者應用程式,實際上,很多初學者都是以寫東西開始,然後再一步一步地改進直到它看起來非常棒。問題在於,在第一次嘗試的時候很難找到一個最好的解決方案。 Pong遊戲邏輯很簡單,也不需要太多的文字內容或者映像(2-1
Time of Update: 2018-12-07
3.3記錄錯誤資訊 調試代碼非常複雜,特別是渲染迴圈出錯了,但您卻得不到任何異常。只設定幾個調試斷點並不夠,尤其是當遊戲運行一段時間之後出現了錯誤,調試並不是合適的選擇。您或許想知道每一幀都發生了什麼,但又不想一步步地跟蹤它。對於這類問題,您可以給控制台輸出一些資訊,不過這隻能在Visual Studio中使用,而且當下次啟動項目時這些資訊就沒了。
Time of Update: 2018-12-07
3.5 RandomHelper類 看一下輔助類中的RandomHelper類,在單一項目中它用得不是很多,但幾乎任何一個遊戲都會需要產生一些隨機數讓遊戲內容看上去沒有太多的周期性,並讓遊戲富於變化。
Time of Update: 2018-12-07
2.4在Xbox 360上試試 好了,遊戲已經完成了,而且在Windows平台上也做了很多測試。就像我在第一章中解釋的那樣,要在Xbox 360上配置並運行XNA Framework需要幾個關鍵步驟。如果Xbox 360上的XNA Game Launcher已經啟動,您可以試著編譯您的XNA Pong遊戲並把它部署到控制台。 對於Xbox 360有特別重要的幾點要謹記:如非必要不要使用任何外部DLL——雖然使用XNA Game
Time of Update: 2018-12-07
3.6 StringHelper類 StringHelper類是最大的輔助類之一,估計它是我寫的第一個輔助類,因為針對字串的處理操作非常多,很容易就可以想到一些方法來改善效能,更容易地處理字串列表,輸出字串資料等等。 看一下StringHelper類的結構圖(3-9所示),您會發現它的方法非常多,重載的方法支援很多不同類型的參數。它還包含大量的單元測試,前面您就曾見過一個。圖3-9
Time of Update: 2018-12-07
第五章編寫自己的XNA映像引擎5.1本章概覽 在本書的第一部分,您學習了XNA
Time of Update: 2018-12-07
1. 可以使用託管語言編寫,非本地代碼,可以跨平台,需要.net運行2. 可以使用C++/CX編寫,C++/CX內部可以使用C或C++的庫.3. 匯出類似於COM, 有3個函數DllCanUnloadNow, DllGetActivationFactory , DllGetClassObject4. 不同於COM,不使用類型庫, 產生.net可識別的winmd5. 也可以使用WRL編寫,WRL類似於ATL.內部也可以使用C或C++的庫.6. 單獨一個runtime庫,無法知道是否可以跨平台7.
Time of Update: 2018-12-07
如果你想配置一個全世界都能訪問的基於Windows系統的Subversion,你可能會選擇svnserve作為系統服務,在Windows下面再去裝Apache模組的確很是麻煩.但有幾個問題始終沒理解透徹,敬請大家指教.基本配置過程我想不用多說,我在幾台電腦上配置過,還是把過程寫下來.從http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91下載svn-win32-1.4.4.zip回來解壓出來.將svnserve.