Skip to content

tim1207/PlantsVsZombies

Repository files navigation

========================================================================
                        About Game Framework 4.8
========================================================================
                            Please refer to 
   http://www.cc.ntut.edu.tw/~wkchen/game/ for more information.
========================================================================

一、簡介

Game Framework是一個開發遊戲程式的平台,其目的是作為一個物件導向程式設計
教學的輔助工具。我在台北科大資工系任教,經常教授物件導向程式設計或其實習
課程,這些課程的教學目標是讓學生熟練程式設計與撰寫的技巧,希望能深植使用
C++ 的能力、熟練VC++的開發環境、熟悉視窗程式設計的元素,以及訓練寫作大型
程式的能力。我在長期的教學經驗中發現,寫再多的小程式,都很難讓學生深刻的
體會到物件的用法與物件的互動,而且無法培養系統的觀念,更遑論開發軟體的能
力。因此,我在實習課程中,要求學生用一整個學期的時間,寫作一個大一點的程
式,而設計視窗遊戲程式,就成為極好的選擇。

我發現透過遊戲設計,可以使程式設計的課程變得比較生動有趣。一般而言,一個
中小型的遊戲(例如小精靈)即已具備小型應用系統的規模,其複雜度足以驗證課堂
上講的程式設計理論,在實作過程中,學生可以體會到,一個應用系統的整體結構
,並能更深入瞭解物件導向設計的原理及精華。當然學生在實作過程中會不斷發現
問題,我則扮演協助學生思考、設計,除錯的角色。過去幾年當中,大多數的學生
都能在課程中得到充分的收穫,也常常有非常專業的作品出現。

然而,要設計一個專業的遊戲,並不是一件很容易的事。其中涉及許多作業系統(
繪圖及音效)的介面操作,與速度控制上的考量,並不是一個學期的課程可以交代
清楚的,而且這些細節,多少會模糊程式實習的焦點,特別是在學生的程式設計能
力還不是很強之前,並不合適。因此,game的平台應運而生,基本上,我的構想是
我自己先將繪圖及音效的問題解決,並且寫成現成的物件,供學生直接引用,那麼
學生們就可以專注在如何設計自己的遊戲應用程式,而透過遊戲設計,就可以學到
很多實作經驗,及解決問題的方法。

在這個第四版的game中,我把遊戲的狀態明確地分成 3個部份,分別是遊戲起始狀
態、遊戲執行狀態及遊戲結束狀態,這使得game的架構更趨近於一個framework,
而不再是一個簡單的library。game各版本之間的主要功能如下:

        第一版 支援DirectDraw繪圖介面                   (game 1.0)
        第二版 增加支援DirectSound音效介面              (game 2.0-2.2)
        第三版 增加支援全螢幕與DirectMusic(MIDI)        (game 3.0-3.1)
        第四版 內建遊戲狀態性的控制                     (game 4.0-4.4)
               可調整的遊戲參數
               新的範例程式
               顯示載入的進度
               支援Visual Studio 2005 (C++)
               局部修正及Bug Fix
               支援Visual Studio 2008 (C++)             (game 4.5)
               用MCI替代DirectMusic                     (game 4.6)
               支援MP3檔音效播放
               支援Windows 7
               支援Visual Studio 2010 (C++)             (game 4.7)
               更新CAudio及Bug Fix (C++)                (game 4.8)

自第三版開始,我將game的原始程式的版權設定為GPL(詳COPYING檔案)。只要你覺
得有用,我歡迎任何人拿這些原始程式去發展新的遊戲。但是,我希望如果你真的
用這個平台開發出遊戲時,也能讓我知道。如果你發現我的程式有 bug,也請通知
我。

	陳偉凱
	台北科大 資工系副教授
	http://www.ntut.edu.tw/~wkchen

二、使用方法

Game Framework可以用在Windows 2000/XP/7。首先你必須有Visual Studio 2010
C++ ,並先安裝DirectX SDK (版本視complier而定),電腦配備則視遊戲的複雜度
而定,一般而言,如果不是很複雜的game,Pentium II或Celeron等級的CPU就足夠
了。

要設計一個新的遊戲,基本上就是改寫CGameStateInit、CGameStateRun、以及
CGameStateOver這三個class(在mygame.h及mygame.cpp),這三個class分別代表
遊戲的起始畫面、遊戲的執行及遊戲結束畫面等三個狀態,在每個狀態中最主要
的動作分為:OnMove()及OnShow(),由OnMove()負責移動遊戲中的物件,再由
OnShow()負責顯示各個物件至螢幕。請參考Game網頁所提供的練習及相關資料:
http://www.cc.ntut.edu.tw/~wkchen/game/。

三、版本差異

 * Game 4.8與Game 4.7的差別 (2012/5/13)
   * 更新CAudio,利用Thread減少播放音效時,執行MCI Command所需之等待時間
   * Bug fix: 有些情形行下Ctrl-Q沒有被正確的顯示
   * 增加Source子目錄
   * Complier 與 Direct X之組合
       * Visual Studio 2010 (C++) 搭配 DirectX February 2010

   Game 4.7與Game 4.6的差別
   * 支援視窗內按滑鼠左鍵,而在視窗外才放開的的LButtonUp、MouseMove事件
   * Complier 與 Direct X之組合
       * Visual Studio 2010 (C++) 搭配 DirectX February 2010

 * Game 4.6與Game 4.5的差別
   * 用MCI替代DirectMusic
   * 支援MP3檔音效播放
   * 支援 Windows 7 (因為Windows 7支援DirectMusic的DirectX SDK不相容)
   * Complier 與 Direct X之組合
       * Visual Studio 2008 (C++) 搭配 DirectX February 2010

 * Game 4.5與Game 4.4的差別
   * 支援Visual Studio 2008,不再與VC++6.0相容
   * Complier 與 Direct X之組合
       * Visual Studio 2008 (C++) 搭配 DirectX August 2006

 * Game 4.4與Game 4.3的差別
   * 對Visual Studio 2005,新增一個setup project,以簡化安裝程序。
   * 新增 bitmap 放大或縮小的支援
   * 新增 game_framework namespace,game相關的class都放到此namespace。
   * 新增 bitmap 自檔案載入的支援(以前只能自resource載入)。
   * 新增 ShowInitProgress(percent) 顯示載入圖形及音效的進度。
   * Complier 與 Direct X之組合
       * Visual Studio 2005 (C++) 搭配 DirectX August 2006
       * VC++6.0 搭配 DirectX 8.x


 * Game 4.3與Game 4.2的差別
   * 支援Visual Studio 2005 (C++); 不再支援Visual Studio .net 2003。
   * Move()改為OnMove(); Show()改為OnShow()。
   * 新增ENABLE_GAME_PAUSE選項。
   * 修復電源suspend再啟動後,音效失靈的問題。
   * Complier 與 Direct X之組合
       * Visual Studio 2005 (C++) 搭配 DirectX August 2006
       * VC++6.0 搭配 DirectX 8.x

 * Game 4.2與Game 4.1的差別
   * 重寫範例程式。
   * 同時支援Visual Studio .net 2003 (C++) 與 VC++6.0。
   * 局部修正及Bug Fix。
   * 新增MouseMove對應程式。
   * Complier 與 Direct X之組合
       * Visual Studio .net 2003 (C++) 搭配 DirectX 8.x
       * VC++6.0 搭配 DirectX 8.x

 * Game 4.1與Game 3.1的差別
   * 內建遊戲狀態性的控制。
   * 可調整的遊戲參數。
   * Complier 與 Direct X之組合
       * VC++6.0 搭配 DirectX 8.x

 * Game 3.1與Game 2.2的差別
   * 支援全螢幕。
   * 支援MIDI。
   * 增加了一個動畫的物件。
   * 修正了一些 bug。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published