• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于EasyX的俄羅斯方塊游戲的設(shè)計(jì)和分析

    2015-12-16 08:03:12殷志堅(jiān)段曉磊
    科技傳播 2015年21期
    關(guān)鍵詞:數(shù)組方塊方格

    殷志堅(jiān),段曉磊

    江西科技師范大學(xué)通信與電子學(xué)院,江西南昌 330000

    基于EasyX的俄羅斯方塊游戲的設(shè)計(jì)和分析

    殷志堅(jiān),段曉磊

    江西科技師范大學(xué)通信與電子學(xué)院,江西南昌 330000

    本文是基于EasyX的圖形庫(kù),運(yùn)用C語(yǔ)言在VC++ 6.0的平臺(tái)上開(kāi)發(fā)出來(lái)的一款俄羅斯方塊游戲。

    EasyX;俄羅斯方塊游戲;VC

    EasyX是針對(duì)C++的圖形庫(kù),可以幫助c語(yǔ)言初學(xué)者者快速的上手圖形和游戲編程,不需要注冊(cè)窗口類,建消息循環(huán)等,在使用上和Turbo C沒(méi)有很大的區(qū)別,但是它增加了鼠標(biāo)、批量繪圖、讀取圖片(點(diǎn)陣或矢量)等功能。

    1 游戲功能描述

    編寫(xiě)一個(gè)成功的俄羅斯方塊游戲,主要考慮實(shí)現(xiàn)以下幾個(gè)功能:游戲方塊的預(yù)覽功能;游戲方塊的控制功能;游戲分?jǐn)?shù)、等級(jí)更新功能;游戲操作提示功能。

    2 游戲設(shè)計(jì)思路

    1)程序進(jìn)入主函數(shù)后首先進(jìn)行初始化,在初始化中通過(guò)initgraph()函數(shù)進(jìn)入圖形模式,用setorigin()函數(shù)設(shè)置原點(diǎn),用rectangle()函數(shù)畫(huà)游戲的游戲區(qū)和預(yù)覽區(qū)兩個(gè)區(qū)域,再通過(guò)outtextxy()函數(shù)輸出游戲桌面的有關(guān)提示以及成績(jī)和等級(jí)。

    2)本游戲的游戲區(qū)域被劃分為20*15個(gè)單元方格,定義了一個(gè)二維數(shù)組

    g_world[20][15],數(shù)組的下標(biāo)就是每個(gè)單元方格左上方的坐標(biāo),通過(guò)數(shù)組存放的信息來(lái)標(biāo)志單元方格的有關(guān)信息,用1表示單元方格被方塊占用,0表示未被占用。

    3)每個(gè)游戲方塊是通過(guò)4*4的矩陣單元方格來(lái)定義的,以下為要設(shè)計(jì)主要的方塊。

    當(dāng)單元方格被占用時(shí)用1表示,未被占用的則用0表示,以第二個(gè)L型方塊為例,這個(gè)方塊可以用0100,0100,0110,0000來(lái)表示,用十六進(jìn)制表示為0x4460。用循環(huán)語(yǔ)句檢測(cè)這個(gè)十六進(jìn)制的每一位,當(dāng)為1是就調(diào)用setfillcolor()、setlinecolor()、fillrectangle()三個(gè)函數(shù)來(lái)給相應(yīng)的單元格填充顏色。

    4)游戲方塊的結(jié)構(gòu)體變量的定義:

    3 游戲用到的有關(guān)算法

    1)方塊變換。

    方塊變換包括左右移動(dòng)、下落、旋轉(zhuǎn)、沉底,首先要用檢測(cè)算法檢測(cè)變換后將要生成的下一個(gè)方塊是否符合游戲規(guī)則,如果符合就先刪除原先的方塊,再畫(huà)出下一個(gè)方塊。

    2)檢測(cè)算法。

    方塊變換時(shí),用檢測(cè)算法檢測(cè)是否出邊界,是否有重疊現(xiàn)象發(fā)生,邊界包括上下左右邊界,根據(jù)方格的左上坐標(biāo)是否超出設(shè)定的邊界來(lái)確定是否出界。重疊則根據(jù)在游戲區(qū)域內(nèi)的方塊所對(duì)應(yīng)的二維數(shù)組的值是否全是0標(biāo)識(shí),如果存在某個(gè)二維數(shù)組的值不為0,則表示發(fā)生重疊,那么就返回false,禁止方塊變換,否則返回true,允許方塊變換。以下是檢測(cè)算法的程序。

    TP3

    A

    1674-6708(2015)150-0137-01

    殷志堅(jiān),教授,江西科技師范大學(xué)通信與電子學(xué)院院長(zhǎng),研究方向:現(xiàn)代信號(hào)與信息處理

    段曉磊,江西科技師范大學(xué)研究生,研究方向:嵌入式系統(tǒng)及應(yīng)用軟件

    猜你喜歡
    數(shù)組方塊方格
    方塊村(1)
    旋轉(zhuǎn)吧!方塊!
    有多少個(gè)方塊
    JAVA稀疏矩陣算法
    方格里填數(shù)
    不一樣的方塊橋
    方格里填數(shù)
    JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
    分方格
    分方格
    阳城县| 晋江市| 渭源县| 称多县| 克山县| 波密县| 海阳市| 襄汾县| 永康市| 湘潭县| 西平县| 泊头市| 绵阳市| 方正县| 林州市| 黄陵县| 会昌县| 兴山县| 五大连池市| 信宜市| 汨罗市| 安庆市| 伊金霍洛旗| 尼勒克县| 突泉县| 炉霍县| 荃湾区| 札达县| 石屏县| 资中县| 苏尼特右旗| 富川| 禹州市| 泽普县| 霸州市| 电白县| 紫云| 滁州市| 广元市| 顺平县| 广东省|