這幾天看侯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 其中核...