讀書筆記之《Visual C++遊戲開發技術與執行個體》(一)

來源:互聯網
上載者:User

        前天去陽江購書中心想買一些關於DirectX9相關的書,結果找遍整個書店也沒找到一本合適的。講遊戲開發的書倒是有幾本。去掉幾本大部分內容都在講遊戲本身的書後,我選擇了兩本書,一本就是現在正在讀的,書名看標題。另一本是Direct3D中的2D編程,不過是基於DX8.0的,而且很大篇幅都是講2D,其實也不錯,2D也是3D的基礎嘛。

        昨天看了《Visual C++遊戲開發技術與執行個體》(以後簡稱V書)的第一章,主要是講一些背景知識,例如遊戲開發的曆史和Windows編程。雖然以前也有看過遊戲發展史的相關資料,這次看又收穫不少,不過那些什麼曆史上第一個、最先什麼的東西和之前看過的不一樣,可能暫時也是沒什麼權威的統一資訊吧,算了,反正現在不用太注意這個。

        算起來我也算是個遊戲老手了,小學一二年級的時候就接觸了街機,那時候玩遊戲機可是會被家長和老師批評的(我想現在也是吧),所以每次去遊戲機廳就像去做壞事一樣,提心弔膽的,老是擔心會被同學看見,那時的學生超聽話,看見同學去遊戲機廳大多數會向班主任報告,我的機友很少,就一兩個鄰居,屬於很調皮的那種,老爸常常以近墨者黑的道理教訓我,叫我不要和他們玩,可是遊戲機的吸引力太大了,只有口袋裡有一兩塊錢,大多數都會往遊戲機廳跑,想起來還真懷念街霸等街機啊(大多數名字都忘記了)。後來終於有了自己的家用遊戲機FC,也就是任天堂經典的紅白機。當時(93年)以為是全世最新的遊戲機了,看了V書後才知道原來FC是83年產的,過了很多年才在中國流行起來,不過也沒流行多久。我那台FC很快就被小霸王學習機所取代了,最後我把FC以不到100塊的價錢賣給了同班同學(真應該儲存下來,作個紀念多好啊)。嗯,從那以後過多兩三年我就開始接觸電腦了,從此與電腦遊戲結伴同行8年。

        還是說說書的內容吧,第一章後半部分簡單講了一些Windows編程的基礎知識,如訊息機制,GDI,定時器,回調(CALLBACK)機制,多線程,動態連結程式庫,COM,聲音和MFC等知識。其實這些東西之前都懂一點點,但是不能說精通,因為看了V書後,對這些東西的認識又更進一步。先說說訊息機制吧,16位的機子只有一個訊息佇列,所以整個系統的每一個訊息都必須等待排在它之前的訊息處理完後才能得到控制權,嗯,書上說這種作業系統叫協同式的多任務系統。進入32位後,即Windows98系統之後,每個程式有屬於自己的一個訊息佇列,這樣對應於每個進程,可以定製自己的訊息處理函數,所以在Windows98和之後的作業系統上,我們可以同時運行多個程式。嗯,書上說這種作業系統叫搶佔式的多任務系統。

        還大概知道了GetMessage和PeekMessage的區別。除非在隊列中有訊息,否則GetMessage不會把控制權交回給程式。PeekMessage不同,它每隔一段時間就往訊息佇列中Peek一下,如果有訊息則返回TRUE,沒有則返回FALSE。在這裡要說一下遊戲的兩個渲染時機,有些遊戲是在接收到WM_PAINT訊息後渲染的,而有一些則是在隊列閒置時候(即PeekMessage返回FALSE時)渲染的,不過我還不太清楚這兩種渲染時機的區別是什麼。

        GDI就不想多說了,好像也只是一些函數,知道如何建立和如何使用就行了。嗯,HDC似乎貫穿GDI的所有操作。

        最主要的收穫還是明白了定時器的作用。原來定時器的主要作用是發送WM_TIMER訊息的。設定定時器的函數是SetTimer,停止它的函數是KillTimer。也可以將WM_TIMER訊息發送給自己定義的訊息處理函數。

        回調機制不說了。多線程也不多說了,主要是如何?同步與互斥的問題。DLL也不說了。COM太複雜,也不說了。

        Windows中和聲音相關的API主要分兩類,一種是高層的,以waveIn和waveOut作首碼,一種是低屋的,以midiIn和midiOut做首碼。還有一些以mci做首碼的介面(MCI,Media Control Interface)。

        書上說MFC也可以開發遊戲,不過是面向小型遊戲的,開發大型遊戲是需要很多Windows API的,MFC對API的封裝使得它並不適合編寫一些底層的軟體。寫遊戲,還是從WinMain開始吧。

聯繫我們

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