VC版的貪吃蛇遊戲

2021-09-01 19:57:39 字數 1651 閱讀 6901

學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...