更新内容.又再一次地修改了CCGL,使它可以支持变宽字符. 这样输出就美观了.
进一步完善了游戏,加入了开场场景等逻辑相关的东西.
BUG:消除方块时的算法一直没修正. 计分系统没有做.
最新下载地址:
Tetris 0.0.1.rar下面是截图,算不上精彩.但在控制台下也不见得有多逊色.
![](http://www.cppblog.com/images/cppblog_com/leaf/Tetris5.jpg)
![](http://www.cppblog.com/images/cppblog_com/leaf/Tetris6.jpg)
![](http://www.cppblog.com/images/cppblog_com/leaf/Tetris7.jpg)
----------------------------------------------------------------------------------------------------------------------------------
麻雀虽小,五脏具全.
此次正式将我写的控制台图形命名为CCGL(cukcoo console graphic layer).弄个名字,精神也自然来了.纯属自娱自乐.
关于CCGL的功能如下:
1,支持图文混排(英文字符和中文字符同宽,即都占两格).
2,支持双缓冲.
3,能够指定缓冲区大小.
4,能够定位像素位置.
![](http://www.cppblog.com/images/cppblog_com/leaf/COLORLIST.jpg)
注:所有的X,Y都做了转换.使用时,采用与GDI相同的坐标系.即左上角为(0,0)
关于这个俄罗斯方块.
在网上有很多关于俄罗斯方块的代码,有的是一两个类堆积而成,有的则是一个个函数拼接.当然,还有更厉害的就是一个main函数搞定一切的大仙们的作品.
此次写俄罗斯方块,花了两三天晚上的时间. 并且还有BUG,也是不完整的产品. 时间花在了哪里呢.那就得看看这俄罗斯方块有什么.
俄罗斯方块能有什么,就是一堆方块而已.但是,俄罗斯方块的代码呢. 却要看你是怎么写了.
突发其想,将俄罗斯方块按普通的MMO游戏来写.即对其各模块进行分类.
图形(CCGL)
场景(与图形绘制相关的部分,唯一)
对象(将场景对象与逻辑对象合并了.多实例)
逻辑场景(多实例,与逻辑相关的部分,逻辑状态决定了采用哪个场景,对应的场景决定了如何处理消息.)
逻辑(这是处理场景转换,整合多个模块功能的地方,唯一)Launcher (加载器,加载游戏并执行.在进入游戏前可以选择一些初始配置)
Main 这就是主函数了.其实它最简单了.
GLaucncher.Init();
GLaucncher.Run();
GLaucncher.Exit();
上张图看看效果.
完成度未知,但可以试玩.
![](http://www.cppblog.com/images/cppblog_com/leaf/Tetris4.jpg)
希望能给游戏开发爱好者们一些思路和帮助.
源码和可执行程序
请点这里 顺便说一下,我是一个喜欢造轮子的人. 当然,我会选择一些比较有意思的轮子.而不是盲目滥造. 我知道,将东西发到CPP首页,就有可能受到批判.批判我会接受,但请注意文明.