用MFC寫了個貪吃蛇

2021-05-21 18:45:45 字數 840 閱讀 4643

這幾天看侯sir的《深入淺出mfc》,看完了覺得如果就這麼放下可能效果不好,就做了個貪吃蛇,本來打算做另乙個東西呢,結果發現現在知識儲備還不夠,還得看看書,再說吧!

貪吃蛇實現得比較簡單,sdi,單執行緒,沒用位圖,因為我沒搞明白怎麼編輯和使用位圖,而且在網上看到乙個也沒用點陣圖的貪吃蛇範例,很好看,就用簡單地矩形填充做了。

做的過程中遇到的問題大概記錄一下:

首先是定時器,貪吃蛇肯定要定時器,用以推進遊戲進度。mfc中定時器的用法是:

settimer()用以設定定時器,指定定時間隔和訊息處理函式,改變時間間隔可以改變遊戲難度,如果不指定訊息處理函式則由framework呼叫ontimer(),這也是一般的做法;

ontimer()用以響應,在此中完成該做的工作;

killtimer()使用結束殺掉定時器。

需要注意的是,只有cwnd的派生類才能接受定時器訊息,所以只能在cmyview和cmainfrm中使用。settimer()必須在視窗完全產生之後呼叫,killtimer()必須在視窗銷毀之前呼叫,因此要掌握好時機,否則會導致乙個assert failed。

有了定時器,蛇就可以走了,由於貪吃蛇每次前進時全身所有點都向前挪一位,就相當於尾部節點接到頭結點前面而其它節點不動,而這樣做移動的效率就很高,為了適應這種操作,選用了clist作為描述snake的資料結構。

改變蛇的運動方向要靠響應鍵盤資訊,響應on_command的wm_key_down,如果響應wm_key_up的話靈敏度不太夠。

對於設定背景顏色、改變視窗風格也都輕車熟路了,多虧了侯sir的書。

發現很多東西上網搜就可以,只要你明白它的原理,真的不用非得記住。

唉呀呀,上境界了。

趕緊抓緊看書吧!

c語言寫了乙個貪吃蛇

很簡單的 可能存在一些bug 大牛不要嘲笑 include stdafx.h include include head.h include include int x 1,y 1,m 0 m為蛇的長度 n為食物個數 int nx 1,ny 1,n 0 int chengji 0 void 遊戲開始 ...

MFC 小遊戲之貪吃蛇

關於雙緩衝 和 onerasebkgnd cdc pdc 的資料請看我部落格的文章。我是用vc6建立乙個.exe 的文字空間,即再在view類中新增檔案,我將這部分的 貼出 大家可以交流下,如有不好之處,請見諒!mfc snackeview.cpp implementation of the cmf...

用 Python 製作乙個 貪吃蛇

今天呢,將分享乙個關於 遊戲製作的小案例 僅用不到 200 行 實現乙個貪吃蛇遊戲,作為 python遊戲 系列的第一篇文章,先看一下程式效果 關於程式具體實現部分,請看下文 工具庫程式中用到的 python 庫有 sys pygame time collection time random 其中核...