这是MFC 俄(é)罗斯方块有源码(mǎ)(纯参考(kǎo))下载,上(shàng)一版本的(de)俄罗(luó)斯方块是(shì)用(yòng)Win32 API做的(de),这次用(yòng)MFC改写一次(cì)。MFC的(de)结构(gòu)也许更清晰,更容易看懂。功(gōng)能基(jī)本不变(biàn),每打(dǎ)到300分,速度增加一级。同时(shí)消去两行以上,会放烟花。同(tóng)时消除的行数越多,烟花规模越大。
屏幕(mù)的中(zhōng)央有一个矩形容器,程序(xù)刚(gāng)开始时是空的;当鼠标单击“开始(shǐ)”菜(cài)单(dān)时,矩形容器内从上向下随机出现俄罗斯方块(kuài)部件。通过(guò)键盘上(shàng)的左(zuǒ)右键分别左右移动部件(一个单(dān)位),向上键顺时针(zhēn)旋(xuán)转(zhuǎn)90度。当(dāng)部件达到(dào)容(róng)器(qì)底部或已停止的部件上时,停止;当容器的同一行被部(bù)件填满时(shí),该行消失。其他(tā)依(yī)次向下移动。
计分方(fāng)法:一次(cì)消去(qù)一行(háng)100分,同时消(xiāo)去(qù)2行、3行和4行分别为300、500和900分。在适当位置上显示当前累计分(fèn)。当部件总行数超过(guò)矩形容器高(gāo)度(dù)时,
提(tí)示“游(yóu)戏失败”信息,并停止(zhǐ)。
Windows下基于MFC的俄罗斯方块,拥有绚丽的界面。对于方块使用4*4的数组进行存储,游戏所在的(de)墙同样使(shǐ)用数组存储(chǔ),每次(cì)由(yóu)定时器触(chù)发一次更新,如果方块能够下降则(zé)下(xià)降(jiàng),否则(zé)随(suí)机生(shēng)成一个方块(kuài)以及一种颜色,通过每次下降(jiàng)前做(zuò)碰撞检测(cè)来实现。
