-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReadMe.txt
142 lines (120 loc) · 5.97 KB
/
ReadMe.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
========================================================================
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。