更新內(nèi)容.又再一次地修改了CCGL,使它可以支持變寬字符. 這樣輸出就美觀了.
進(jìn)一步完善了游戲,加入了開場(chǎng)場(chǎng)景等邏輯相關(guān)的東西.
BUG:消除方塊時(shí)的算法一直沒修正. 計(jì)分系統(tǒng)沒有做.
最新下載地址:
Tetris 0.0.1.rar下面是截圖,算不上精彩.但在控制臺(tái)下也不見得有多遜色.



----------------------------------------------------------------------------------------------------------------------------------
麻雀雖小,五臟具全.
此次正式將我寫的控制臺(tái)圖形命名為CCGL(cukcoo console graphic layer).弄個(gè)名字,精神也自然來了.純屬自娛自樂.
關(guān)于CCGL的功能如下:
1,支持圖文混排(英文字符和中文字符同寬,即都占兩格).
2,支持雙緩沖.
3,能夠指定緩沖區(qū)大小.
4,能夠定位像素位置.

注:所有的X,Y都做了轉(zhuǎn)換.使用時(shí),采用與GDI相同的坐標(biāo)系.即左上角為(0,0)
關(guān)于這個(gè)俄羅斯方塊.
在網(wǎng)上有很多關(guān)于俄羅斯方塊的代碼,有的是一兩個(gè)類堆積而成,有的則是一個(gè)個(gè)函數(shù)拼接.當(dāng)然,還有更厲害的就是一個(gè)main函數(shù)搞定一切的大仙們的作品.
此次寫俄羅斯方塊,花了兩三天晚上的時(shí)間. 并且還有BUG,也是不完整的產(chǎn)品. 時(shí)間花在了哪里呢.那就得看看這俄羅斯方塊有什么.
俄羅斯方塊能有什么,就是一堆方塊而已.但是,俄羅斯方塊的代碼呢. 卻要看你是怎么寫了.
突發(fā)其想,將俄羅斯方塊按普通的MMO游戲來寫.即對(duì)其各模塊進(jìn)行分類.
圖形(CCGL)
場(chǎng)景(與圖形繪制相關(guān)的部分,唯一)
對(duì)象(將場(chǎng)景對(duì)象與邏輯對(duì)象合并了.多實(shí)例)
邏輯場(chǎng)景(多實(shí)例,與邏輯相關(guān)的部分,邏輯狀態(tài)決定了采用哪個(gè)場(chǎng)景,對(duì)應(yīng)的場(chǎng)景決定了如何處理消息.)
邏輯(這是處理場(chǎng)景轉(zhuǎn)換,整合多個(gè)模塊功能的地方,唯一)Launcher (加載器,加載游戲并執(zhí)行.在進(jìn)入游戲前可以選擇一些初始配置)
Main 這就是主函數(shù)了.其實(shí)它最簡(jiǎn)單了.
GLaucncher.Init();
GLaucncher.Run();
GLaucncher.Exit();
上張圖看看效果.
完成度未知,但可以試玩.

希望能給游戲開發(fā)愛好者們一些思路和幫助.
源碼和可執(zhí)行程序
請(qǐng)點(diǎn)這里 順便說一下,我是一個(gè)喜歡造輪子的人. 當(dāng)然,我會(huì)選擇一些比較有意思的輪子.而不是盲目濫造. 我知道,將東西發(fā)到CPP首頁,就有可能受到批判.批判我會(huì)接受,但請(qǐng)注意文明.