此處,我感受到復用性的好處,將與顯示或平台無關的東西分裝在一起,如果能進一步抽象的盡量抽象,就可以充分發揮其復用性。
具體的關於snake的設計,請參見我的部落格《c++版貪吃蛇遊戲》。
下面是vc下的遊戲介面截圖:
在這裡說一下vc下與c++不同的及新家的東西。
[cpp]view plain
copy
//引入庫
#include
#pragma comment(lib,"winmm.lib")
// todo: add your command handler code here
/加背景**
mcisendstring( "open ./res/650.*** alias bk"
, 0, 0, 0 );
mcisendstring( "play bk repeat"
, 0, 0, 0 );
///
2)顯示的不同,這是最大的變化,但不難,因為在c++中就已用二維陣列表示了,這裡只需根據二維陣列的值,來顯示成為不同的就行了。
看一部分**:
[cpp]view plain
copy
/// csnakeview message handlers
void
csnakeview::display(
intimage[20][20],cdc *pdc)
else
if(image[i][j]==1)
else
if(direction==4)
else
if(direction==6)
else
if(direction==8)
} else
if(image[i][j]==2)
} }
}
cbitmap bitmap11;
bitmap11.loadbitmap(idb_bitmap10);
cbrush brush11;
brush11.createpatternbrush(&bitmap11);
crect rec5;
rec5=crect(440,0,540,495);
pdc->fillrect(rec5,&brush11);
char
buf[100];
//gotoxy(46,9);
sprintf(buf,"score:%-5d"
,score);
//記錄分數
//pdc->setbkmode(transparent);
pdc->textout(445,120,buf);
//gotoxy(46,10);
sprintf(buf,"level=%-5d"
,level);
//記錄等級
pdc->textout(445,150,buf);
}
3)為了避免螢幕的閃爍,採用雙緩衝機制。
**:[cpp]view plain
copy
void
csnakeview::ondraw(cdc* pdc)
4)其他的就是採用vc中的按鍵響應函式及timer時間控制就ok了,別的都和c++差不多。
VC版的貪吃蛇遊戲
學c 的時候,課程設計編寫了c 版的貪吃蛇遊戲,當時,將很多的東西都分裝在了snake類中,所以,將其移植到vc中,只需將snake類稍作修改,然後新增到vc中即可。此處,我感受到復用性的好處,將與顯示或平台無關的東西分裝在一起,如果能進一步抽象的盡量抽象,就可以充分發揮其復用性。具體的關於snak...
pygame Python 版貪吃蛇
貪吃蛇是個非常簡單的遊戲,適合練手。先來看一下我的遊戲截圖 玩法介紹 回車鍵 開始遊戲 空格鍵 暫停 繼續 方向鍵 或 wsad 鍵 控制移動方向。食物分紅 綠 藍三種,分別對應 10 分 20 分 30 分,每吃乙個食物增加對應分值,每增加 100 分速度加快一級,沒有設定關卡,我玩到 1100 ...
Qt版貪吃蛇遊戲
qt版貪吃蛇遊戲 以下是windows 7下執行截圖 以下是ubuntu下執行截圖 我在windows下編寫好之後,將原始碼在ubuntu下重新編譯執行,就可以在ubuntu下執行,這也充分體現出qt一次編寫,到處執行的優勢。關於貪吃蛇遊戲的設計原理就不講了,具體可以參考我的部落格 c 版貪吃蛇遊戲...