




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、小游戲 打磚塊制作人 : 步宇星 20062366 信息學(xué)院 06計(jì)算機(jī)系開發(fā)平臺(tái): Visual C+6.0軟件介紹: 模擬紅白機(jī)小游戲,打磚塊。如果你是80年代出生 或者孩子是80年代出生的話,或者你是一個(gè)心理年齡比較中,家里一定會(huì)有任天堂出品的紅白機(jī),或者小霸王。那些懷舊的經(jīng)典游戲中有一款叫做打磚塊的小游戲。本作品就是我在PC上仿真它做出來的。游戲開始時(shí)的截圖。這是一個(gè)用DirectDraw做圖形處理的全屏幕游戲。操作在屏幕下方。玩過的人都知道游戲規(guī)則,很簡單,控制球棒接住球并把所有的方塊打掉,就可以進(jìn)入下一關(guān)。屏幕上方又顯示level,level越高球速越快,另外每關(guān)背景和音樂也不一樣
2、。這是第二關(guān) 背景改變了下面的卡就不在給圖了主要程序框架:本游戲是在win32平臺(tái)下用開發(fā)的,所以跟每個(gè)win32程序一樣都是以WinMain為程序入口,用WindowProc來處理消息(WM_CREATE、WM_ACTIVATE、WM_PAINT、WM_DESTROY)。1、主消息循環(huán)/ 游戲初始化Game_Init(;/ 進(jìn)入事件循環(huán)while(trueif (PeekMessage(&msg,NULL,0,0,PM_REMOVE / 如果是WM_QUIT退出事件循環(huán)if (msg.message = WM_QUITbreak;/ 翻譯消息TranslateMessage(&
3、;msg;/ 把消息送給回調(diào)函數(shù)DispatchMessage(&msg; / end if/ 進(jìn)入游戲主程序 在這里進(jìn)行每一幀的繪制if(!Game_Main(return (0; / end while/ 做游戲結(jié)束工作Game_Shutdown(;為了保證響應(yīng)windows,Game_Main(采用狀態(tài)機(jī)的方式工作,每次操作完返回給windows下次再進(jìn)入Game_Main(時(shí)根據(jù)所在狀態(tài)工作,/ 游戲狀態(tài)#define GAME_STATE_INIT 0#define GAME_STATE_START_LEVEL 1#define GAME_STATE_RUN 2#define
4、 GAME_STATE_PAUSE 3#define GAME_STATE_OVER 4#define GAME_STATE_SHUTDOWN 5#define GAME_STATE_EXIT 6游戲先進(jìn)入 GAME_STATE_INIT 狀態(tài) 做好初始化工作進(jìn)入 GAME_STATE_START_LEVEL 狀態(tài) 重置每關(guān)的初始數(shù)據(jù)進(jìn)入 GAME_STATE_RUN 循環(huán) 在這里執(zhí)行游戲邏輯、輸入檢測(cè),并繪制每一幀并返回windows重復(fù)第三步第三步中 按下Enter鍵進(jìn)入GAME_STATE_PAUSE 狀態(tài) 游戲?qū)和#钡桨聪聅pace鍵回到第三步第三步中 將生命用完(life值小于0
5、)進(jìn)入GAME_STATE_OVER狀態(tài),直到按下R鍵回到第二步上述步驟中如按下Esc鍵 則進(jìn)入GAME_STATE_SHUTDOWN狀態(tài) 此時(shí)做結(jié)束工作 并發(fā)送WM_DESTROY消息進(jìn)入GAME_STATE_EXIT狀態(tài) 此時(shí)Game_Main(不做任何操作就返回2、圖像處理部分考慮到游戲?qū)λ俣鹊囊螅瑘D像處理主要利用比GDI快得多的DirectDraw完成(文字顯示用了GDI)。所有Direct的相關(guān)代碼都在被我封裝在ddrawlib.cpp中,其中的全局變量和函數(shù)原型以及宏和定義都在ddrawlib.h申明。我這么做的目的是讓自己習(xí)慣于利用引擎的API來編程。實(shí)際上ddrawlib就是
6、一個(gè)基于Direct的簡單2D游戲引擎。關(guān)于該引擎的函數(shù)庫說明,源代碼中有詳細(xì)的注釋,這里不多講了。3、聲音處理部分聲音處理部分并沒有像圖像一樣用Direct去寫。因?yàn)樗鼘?duì)速度不的影響并不大。而DirectSound或者DirectMusic(或者2者的結(jié)合DirectAudio)過于復(fù)雜了。所以音效我只用了WIN API PlaySound函數(shù)。而背景音樂用了MCI設(shè)備的API。音效 :這部分沒什么好說的。我只在需要有聲音的時(shí)候調(diào)用了PlaySound。背景音樂:為了讓用戶能夠改變背景音樂,我在MP3文件夾下留了一個(gè)playlist.txt文件。修改音樂方法如下1、先將音樂文件放到mp3文件
7、夾下。2、修改playlist.txt中的文件名。注:每行一首,并且行數(shù)對(duì)應(yīng)在哪一關(guān)播放。例如在第三行寫:she-找不到.mp3那么第3關(guān)就會(huì)循環(huán)播放這首歌。我檢測(cè)了支持wma和mp3置兩種格式,其他支不支持我也不知道。不過我想這已經(jīng)足夠了。另外最多只能50首。播放函數(shù)如下:/ 播放音樂 該函數(shù)在GAME_STATE_START_LEVEL中調(diào)用使每關(guān)開始重置音樂/ 在GAME_STATE_RUN中如檢測(cè)到還未過關(guān)就停止了也調(diào)用此函數(shù)重放int Play_Music(if(list_numint index = (level-1%list_num;/ 創(chuàng)建MCI設(shè)備句柄/ 如果句柄不為空先關(guān)閉
8、設(shè)備if(m_Audio!=NULLMCIWndStop(m_Audio;MCIWndClose(m_Audio;/創(chuàng)建m_Audio = MCIWndCreate(main_window_handle,main_instance,WS_CHILD | MCIWNDF_NOMENU,(char*playlistindex;/播放MCIWndPlay(m_Audio;return (1;/檢測(cè)音樂使否已放完是就重播,不是就返回0,是就返回1int Music_Is_Stop(if(MCIWndGetPosition(m_Audio = MCIWndGetLength(m_Audioreturn (1;return (0;個(gè)人小結(jié):我通過這個(gè)編寫過程獲得了不少的經(jīng)驗(yàn),練習(xí)了怎么編寫WIN32程序,知道了怎么規(guī)劃游戲過程的框架,知道了怎么鎖定幀率,知
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何高效備考軟件評(píng)測(cè)師試題及答案
- 氣象評(píng)估考試題及答案
- b級(jí)考試試題及答案用什么軟件
- 專科專項(xiàng)復(fù)習(xí)試題及答案
- 購買食品合同協(xié)議書范本
- 安全考試題庫及答案下載
- 臨檢復(fù)習(xí)測(cè)試附答案
- 社會(huì)工作者考試試題與答案
- 人體解剖學(xué)復(fù)習(xí)試題含答案
- 長城汽車面試題庫及答案
- 中華人民共和國監(jiān)察法學(xué)習(xí)解讀課件
- 物流公司消防培訓(xùn)課件模板
- 空間向量與立體幾何教材分析
- 1-STM32F4xx中文參考手冊(cè)
- 集裝箱采購?fù)稑?biāo)方案(技術(shù)方案)
- 電子信息工程技術(shù)專業(yè)職業(yè)生涯規(guī)劃書
- 國開2023秋《人文英語3》第1-4單元作文練習(xí)參考答案
- 世界各國國家代號(hào)、區(qū)號(hào)、時(shí)差
- JGT388-2012 風(fēng)機(jī)過濾器機(jī)組
- 《靈飛經(jīng)》硬筆字帖精臨篇137張(可打印)
- 油漆工承包合同
評(píng)論
0/150
提交評(píng)論