• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            zyzx的小窩

            C/C++,GUI,個(gè)人移動(dòng)存儲(chǔ),zyzx_lsl@163.com

             

            N(4) 雙緩存與臟矩形:記偶的貪吃蛇游戲?qū)崿F(xiàn)

            tag:C,雙緩存,臟矩形,Win32,API

            /* Create by zyzx
            * Created 2008-07-02
            * Modified 2008-07-03
            */

            ?????? 翻開(kāi)學(xué)生時(shí)代的作品,真是百味俱全啊。在追求編程真諦的道路上,迷茫過(guò),痛苦過(guò),也興奮過(guò),至今也持續(xù)這些感覺(jué),可惜不再那么的強(qiáng)烈。
            ?????? 看了看大二那會(huì)做的東東:貪吃蛇游戲,感覺(jué)就像小孩子過(guò)家家純粹好玩。雖然編程手法上,就那個(gè)樣,但它確實(shí)令我撥開(kāi)了編程的面紗。又看了大一那會(huì)也做的個(gè)玩意(用VB做的),終于知道囧字咋寫(xiě)的了,顯示一個(gè)物體用一個(gè)PictureBox框,結(jié)果屏幕上N多PictureBox框框,程序沒(méi)多大,卻卡得不行,呵呵。

            ?????? 貪吃蛇的基本思路:用一個(gè)循環(huán)鏈表(可增減)記錄蛇,標(biāo)記蛇頭、蛇尾。蛇的移動(dòng),對(duì)于程序內(nèi)部來(lái)說(shuō),只是蛇頭和蛇尾的標(biāo)記發(fā)生變化。碰撞檢查,也就是檢查蛇頭將前行的一個(gè)位置,是否在蛇本身或出界或不可通過(guò)點(diǎn)。用一個(gè)二維數(shù)組標(biāo)記不可通過(guò)點(diǎn)。
            ?????? UI表現(xiàn):準(zhǔn)備一個(gè)畫(huà)布(與HDC相兼容的DC或是Image等),首先繪制背景,然后繪制遮擋物體(不可通過(guò)點(diǎn)),最后繪制貪吃蛇。完成繪制后將畫(huà)布復(fù)制粘貼到屏幕上。這就是雙緩存思想了,可嘆咱剛開(kāi)始為解決屏幕閃爍問(wèn)題苦苦思索了幾個(gè)星期。當(dāng)時(shí)咱壓根不知道網(wǎng)上有這多知識(shí)可以查到,寢室聯(lián)個(gè)網(wǎng),除了上門(mén)戶網(wǎng)站就是打游戲了,呵呵。
            ?????? 這里如果要再提高幀速率,還可以使用“臟矩形”,原理即:由于畫(huà)面后一張與前面一張只有某些部分變化,因此只需要更新這些部分即可。典型的如Window的窗口系統(tǒng)就是使用的“臟矩形”技術(shù)局部更新。
            ?????? 用戶操作:玩家使用上下左右箭頭控制,這里使用的是定時(shí)器控制幀率。比如每隔N毫秒檢查一次方向鍵盤(pán)的狀態(tài),確定移動(dòng)方向,判斷能否移動(dòng)。。。
            ?????? 此處由于做的東西比較小,耗時(shí)不是很多,所以沒(méi)有碰到幀率過(guò)快或過(guò)慢而影響控制的問(wèn)題。實(shí)際的大型游戲中,這里可是比較關(guān)鍵的部分啊,搞得不好就像曾經(jīng)“傳奇”的加速外掛那樣,一秒種內(nèi)砍幾千下,呵呵。。

            ??????? 整個(gè)程序文件如下:一個(gè)頭文件和一個(gè)實(shí)現(xiàn)文件。

            ??????? 程序是基于Win32的API編程的,所以使用了Window的編程模板。按鈕繪圖動(dòng)畫(huà)等等都是直接使用Win32的API實(shí)現(xiàn)。

            tanchishe.h
            Tanchishe_H.png

            tanchishe.cpp
            Tanchishe_A_CPP.png
            Tanchishe_B_CPP.png

            如下是第6關(guān)的效果(尺寸沒(méi)調(diào)好)
            TanchesheTest.png

            posted on 2009-04-27 17:10 zyzx 閱讀(1423) 評(píng)論(1)  編輯 收藏 引用 所屬分類: C/C++體會(huì)

            評(píng)論

            # re: N(4) 雙緩存與臟矩形:記偶的貪吃蛇游戲?qū)崿F(xiàn)[未登錄](méi) 2012-08-09 11:50 路人甲

            學(xué)習(xí)了  回復(fù)  更多評(píng)論   

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            常用鏈接

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            国产精品久久久久免费a∨| 久久男人中文字幕资源站| 狠狠人妻久久久久久综合蜜桃| 国内精品久久久久影院网站 | 久久久久亚洲爆乳少妇无| 欧美精品丝袜久久久中文字幕 | 亚洲狠狠婷婷综合久久久久| 精品久久一区二区三区| 久久午夜福利电影| 亚洲欧美日韩久久精品| 精品久久久久久无码人妻热| 久久久久久久久久久| 国产成人久久精品麻豆一区| 亚洲综合精品香蕉久久网| 办公室久久精品| 久久人人爽人人人人爽AV| 伊人久久免费视频| 精品久久久久久成人AV| 77777亚洲午夜久久多人| 91久久福利国产成人精品| 色综合久久久久久久久五月| 久久久久久噜噜精品免费直播| 久久最新精品国产| 久久精品国产91久久麻豆自制| 久久午夜夜伦鲁鲁片免费无码影视 | 人妻无码精品久久亚瑟影视| 一本久久a久久精品综合夜夜| 久久99热这里只频精品6| 精品久久国产一区二区三区香蕉 | 久久精品国产精品亚洲人人 | 色婷婷综合久久久久中文| 色综合久久无码五十路人妻| 武侠古典久久婷婷狼人伊人| 国产精品熟女福利久久AV| 88久久精品无码一区二区毛片 | 国产精品久久久久9999高清| 国产韩国精品一区二区三区久久| 欧美国产成人久久精品| 久久久久久精品久久久久| 国内精品综合久久久40p| 亚洲国产另类久久久精品小说 |