以后所有可以下载的东西都会加入此贴.这是一篇持续更新的贴子.
2010.01.14 2D Skinned Mesh
简介:一个2D的蒙皮骨骼例子,可以看清骨骼运算的本质 详细请进
2010.09.02 CCGE 1.0.1
简介:开开心心收场.应该是最后版本了.本人对控制台已无憾言.详细请进
2010.08.30 CCGE 1.0.0
简介:在原来CCGL的基础上,修改了底层绘制方案,使效率提升了许多倍.并整合了两个游戏DEMO.修改了其更新算法,使它们的绘制独立于CPU运算速度,不会出现更新过快过慢的现象(如果连基本帧率都达不到的CPU,另当别论)...
下载页面
2010.08 俄罗斯方块 0.0.1
简介:利用控制台字符属性产生图形效果,写出的俄罗斯方块.下载页面
2010.07 贪食蛇 0.0.1
简介:利用控制台字符属性产生图形效果,写出的贪食蛇.下载页面
2010.06 3d模型导入
简介:毕业设计时做的一个3D模型导入程序.很寒酸.用的是OPENGL来加载MD2模型下载页面
2009.04 3d贪食蛇-小游戏
简介:这是一款基于DX9的小游戏,学完DX9做了两个.这是其中一个.下载页面
2008.10 墙中公主-小游戏
简介:这是一款基于DX9的小游戏,学完DX9做了两个.这是其中一个.下载页面
更新内容.又再一次地修改了CCGL,使它可以支持变宽字符. 这样输出就美观了.
进一步完善了游戏,加入了开场场景等逻辑相关的东西.
BUG:消除方块时的算法一直没修正. 计分系统没有做.
最新下载地址:
Tetris 0.0.1.rar下面是截图,算不上精彩.但在控制台下也不见得有多逊色.
----------------------------------------------------------------------------------------------------------------------------------
麻雀虽小,五脏具全.
此次正式将我写的控制台图形命名为CCGL(cukcoo console graphic layer).弄个名字,精神也自然来了.纯属自娱自乐.
关于CCGL的功能如下:
1,支持图文混排(英文字符和中文字符同宽,即都占两格).
2,支持双缓冲.
3,能够指定缓冲区大小.
4,能够定位像素位置.
注:所有的X,Y都做了转换.使用时,采用与GDI相同的坐标系.即左上角为(0,0)
关于这个俄罗斯方块.
在网上有很多关于俄罗斯方块的代码,有的是一两个类堆积而成,有的则是一个个函数拼接.当然,还有更厉害的就是一个main函数搞定一切的大仙们的作品.
此次写俄罗斯方块,花了两三天晚上的时间. 并且还有BUG,也是不完整的产品. 时间花在了哪里呢.那就得看看这俄罗斯方块有什么.
俄罗斯方块能有什么,就是一堆方块而已.但是,俄罗斯方块的代码呢. 却要看你是怎么写了.
突发其想,将俄罗斯方块按普通的MMO游戏来写.即对其各模块进行分类.
图形(CCGL)
场景(与图形绘制相关的部分,唯一)
对象(将场景对象与逻辑对象合并了.多实例)
逻辑场景(多实例,与逻辑相关的部分,逻辑状态决定了采用哪个场景,对应的场景决定了如何处理消息.)
逻辑(这是处理场景转换,整合多个模块功能的地方,唯一)Launcher (加载器,加载游戏并执行.在进入游戏前可以选择一些初始配置)
Main 这就是主函数了.其实它最简单了.
GLaucncher.Init();
GLaucncher.Run();
GLaucncher.Exit();
上张图看看效果.
完成度未知,但可以试玩.
希望能给游戏开发爱好者们一些思路和帮助.
源码和可执行程序
请点这里 顺便说一下,我是一个喜欢造轮子的人. 当然,我会选择一些比较有意思的轮子.而不是盲目滥造. 我知道,将东西发到CPP首页,就有可能受到批判.批判我会接受,但请注意文明.
新版源码下载地址.
点击这里 (SnakeGame 0.0.1 ) 链接已修正,请放心使用.
--------------------------------------------------------------------------------------------------------------------------------
先前的版本会闪屏,于是新建了一个缓冲来解决,并将对控制台的"图形"操作抽象了出来,使我们使用的时候就像在使用普通的图形设备一样
1 设置清屏色
2 指定像素位置,设置要绘制的内容
3 提交缓冲区内容.
新版源码已完成了游戏的基本功能
输入控制
食物检测
障碍检测
另外,还收录了部分用于方便设置控制台属性的函数.如窗口图标,窗口句柄等.
-------------------------------------------
Windows下的控制台是可以设置前景,背景色的。这给了我一个很不错的想法,用他写图形。
说好就开工,用了一个小时写了一个贪食蛇。
完成功能:
有一个简单的绘制框架。
一个简单的UI。
除了食物没有处理外,其余都OK。
能自动更新,检测碰撞等。。。
二话不说,有图有真相。
蛋疼的朋友可以试试,挺爽的。。。。
下载地址:
源码加执行程序
今天早上起来就兴致脖脖地开始编写引擎的Log输出工具。 一个小时后,基本上完功。 经测试时才发现,原来_tprintf在Unicode下不能输出中文。求解未果,只好去上班了。
晚上回来继续完善早上的工作,将Log输出做成了可以重定向的层次结构,并放入了一个可以共享的Share动态库中。这样就可以保持Log输出系统的唯一和共享(静态Lib中共无法共享).
用百度搜了一下这个输出问题,突然发现了其中奥妙,原来Unicode需要本地化信息。
经测试发现了如下规律
/*
C多 CU 非C多 非CU
stdio 1 0 1 1
iostream 1 1 0 0可以得出
1、在多字节时,默认(C)风格下,二者都能输出中文。
2、在多字节时,非C风格下,cout不能输出中文
3、在U时,默认C风格下,print不能输出中文
4、在U时,非C风格下,cout不能输出中文由此可知,要在C风格下,iostream才能输出中文。
而printf只有在C风格的Unicode下才不能输出中文,其它均可。
*/
测试代码如下
#include <iostream>
#include <tchar.h>
#include <locale>
int _tmain(int argc, _TCHAR* argv[])
{
#ifdef _UNICODE
_tsetlocale(LC_CTYPE,TEXT(""));
#endif
_tprintf(TEXT("a在哪里啊\n"));
#ifdef _UNICODE
_tsetlocale(LC_CTYPE,TEXT("C"));
#endif
#ifdef _UNICODE
std::wcout<<"d在哪里啊"<<std::endl;
#else
std::cout<<"d在哪里啊"<<std::endl;
#endif
getchar();
return 0;
}