學c++的時候,課程設計編寫了c++版的貪吃蛇遊戲,當時,將很多的東西都分裝在了snake類中,所以,將其移植到vc中,只需將snake類稍作修改,然後新增到vc中即可。
此處,我感受到復用性的好處,將與顯示或平台無關的東西分裝在一起,如果能進一步抽象的盡量抽象,就可以充分發揮其復用性。
具體的關於snake的設計,請參見我的部落格《c++版貪吃蛇遊戲》。
下面是vc下的遊戲介面截圖:
在這裡說一下vc下與c++不同的及新家的東西。
//引入庫
#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++中就已用二維陣列表示了,這裡只需根據二維陣列的值,來顯示成為不同的就行了。
看一部分**:
/
// csnakeview message handlers
void csnakeview::display(int image[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)為了避免螢幕的閃爍,採用雙緩衝機制。
**:
void csnakeview::ondraw(cdc* pdc)
4)其他的就是採用vc中的按鍵響應函式及timer時間控制就ok了,別的都和c++差不多。 VC版貪吃蛇
此處,我感受到復用性的好處,將與顯示或平台無關的東西分裝在一起,如果能進一步抽象的盡量抽象,就可以充分發揮其復用性。具體的關於snake的設計,請參見我的部落格 c 版貪吃蛇遊戲 下面是vc下的遊戲介面截圖 在這裡說一下vc下與c 不同的及新家的東西。cpp view plain copy 引入庫 ...
Qt版貪吃蛇遊戲
qt版貪吃蛇遊戲 以下是windows 7下執行截圖 以下是ubuntu下執行截圖 我在windows下編寫好之後,將原始碼在ubuntu下重新編譯執行,就可以在ubuntu下執行,這也充分體現出qt一次編寫,到處執行的優勢。關於貪吃蛇遊戲的設計原理就不講了,具體可以參考我的部落格 c 版貪吃蛇遊戲...
貪吃蛇遊戲
貪吃蛇遊戲 結構化程式設計 c語言程式設計 重要的的是結構化的程式設計思想 include include include include include include define field width 300 就做20個格仔的 define field height 300 define f...