1.建立乙個基於對話方塊的程式
2.新增如下所示的編輯框,文字框
並設定這幾個按鈕位置屬性如下
3.準備一張背景圖,放入res資料夾內,這樣,準備工作就做好了,現在來新增**了
4.新增gdi+支援(見前文)
5.在主對話方塊類中新增兩個結構
struct snake
;struct food
;
新增共有成員int m_width;//遊戲區寬度
int m_height ;//遊戲區高度
image* img;//背景圖
listsnake;//蛇
food food;//食物
別忘記新增對list的支援
#includeusing std::list;
初始化背景圖
在主對話方塊建構函式中
img = image::fromfile(_t("res/bkg.jpg"));
6.新增巨集,4個方向巨集,2個蛇大小巨集
#define snake_left 3
#define snake_up 1
#define snake_right 2
#define snake_down 0
#define snake_width 20
#define snake_height 20
7.新增定時器訊息,初始化在initinstance()函式中
settimer(0, 1000, null);
srand(300);
//蛇位置初始化
snake snakes;
snakes.x = rand() % 300;
snakes.y = rand() % 300;
snakes.direction = rand() % 3;
for (int i = 0; i < 5; i++)
//食物初始化
srand(2000);
food.x = rand() % m_width;
food.y = rand() % m_height;
8.新增繪製蛇主體和食物的函式drawsnake()
void csnakedlg::drawsnake(graphics & gh)
}
再新增碰撞檢測函式i****()
void csnakedlg::i****()
每一幀蛇移動一次,只動蛇頭和蛇尾void csnakedlg::snakerun()
snake.push_back(head);
if(!iseat())//沒有吃到食物就彈出頭部
snake.pop_front();
}
是否吃到食物判斷bool csnakedlg::iseat()
return false;
}
9.新增wm_size訊息
獲取對話方塊的大小並儲存
void csnakedlg::onsize(uint ntype, int cx, int cy)
10,新增對按鍵的支援
新增虛函式pretranslatemessage(),該函式在windows處理之前攔截按鍵訊息
bool csnakedlg::pretranslatemessage(msg* pmsg)
return cdialogex::pretranslatemessage(pmsg);
}
11.利用雙緩衝將該遊戲繪製出來
void csnakedlg::onpaint()
else
pdc->bitblt(0, 0, m_width, m_height, &m_dcmemory, 0, 0, srccopy);
cdialogex::onpaint();
}}
12.利用計時器將做出流暢遊戲
void csnakedlg::ontimer(uint_ptr nidevent)
遊戲完成
該遊戲還有許多不完善的地方
得分功能沒有設計;小蛇自我碰撞檢測沒有設計,遊戲開始暫停也沒有設計
效果
乙個簡單的「貪吃蛇」小遊戲
乙個簡單的 貪吃蛇 小遊戲 分享人 鄭漲 頁面結構 簡單的21x21的方塊,頁面結構 id為container的div包含所21個class名為row的div,每個row代表貪吃蛇的一整行,每個row中又包含21個div,代表這一行的每乙個div方格,如果這個方格是空的話,div的類名為blank,...
C 簡單貪吃蛇遊戲
用c 實現的非常簡單的非圖形介面的簡單貪吃蛇遊戲 include include include include include includeusing namespace std void transport short short short void set short,short void...
簡單的貪吃蛇遊戲實現
貪吃蛇功能實現 1 定義貪吃蛇遊戲棋盤圖 2 初始化棋盤 3 輸出棋盤所在資訊 3 選擇遊戲難度 4 隨機產生食物 5 更新遊戲動態 6 設定遊戲相應的操作 7 列印遊戲結果 實現 include include include include include include include usi...