麒麟子

~~

导航

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

常用链接

留言簿(12)

随笔分类

随笔档案

Friends

WebSites

积分与排名

最新随笔

最新评论

阅读排行榜

评论排行榜

#

下载列表

以后所有可以下载的东西都会加入此贴.这是一篇持续更新的贴子.

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做了两个.这是其中一个.下载页面

posted @ 2010-08-28 09:22 麒麟子 阅读(364) | 评论 (0)编辑 收藏

用控制台写图形程序--俄罗斯方块

更新内容.又再一次地修改了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首页,就有可能受到批判.批判我会接受,但请注意文明.

posted @ 2010-08-26 02:16 麒麟子 阅读(3574) | 评论 (10)编辑 收藏

用控制台写图形程序--贪食蛇

新版源码下载地址. 点击这里 (SnakeGame 0.0.1 ) 链接已修正,请放心使用.
--------------------------------------------------------------------------------------------------------------------------------
先前的版本会闪屏,于是新建了一个缓冲来解决,并将对控制台的"图形"操作抽象了出来,使我们使用的时候就像在使用普通的图形设备一样

        1 设置清屏色
        2 指定像素位置,设置要绘制的内容
        3 提交缓冲区内容.

新版源码已完成了游戏的基本功能
   输入控制
   食物检测
   障碍检测
另外,还收录了部分用于方便设置控制台属性的函数.如窗口图标,窗口句柄等.
-------------------------------------------
Windows下的控制台是可以设置前景,背景色的。这给了我一个很不错的想法,用他写图形。

说好就开工,用了一个小时写了一个贪食蛇。

完成功能:
有一个简单的绘制框架。
一个简单的UI。
除了食物没有处理外,其余都OK。

能自动更新,检测碰撞等。。。
二话不说,有图有真相。

蛋疼的朋友可以试试,挺爽的。。。。

PicturePicture Picture

下载地址:源码加执行程序

posted @ 2010-08-20 01:02 麒麟子 阅读(4195) | 评论 (7)编辑 收藏

代颜色的提示信息输出。

前几天在网上搜到一段改变控制台字符颜色的代码,用它做了一个代字体颜色的Log输出。感觉还是比较不错的。

  /*
  0 黑色 1 深蓝 2绿 3浅蓝
  4暗红 5暗紫 6嫩黄 7浅白
  8浅灰 9亮蓝 10亮绿 11非常蓝
  12大红 13亮紫 14黄 15白 
  */

这是那段代码。我已做成了ANSI和UNICODE都支持的版本,具体为什么要这样,可以看前一篇关于字符编码与IO的问题。
    void __Printfc(U16 color, const TCHAR* format,
    

        va_list argList; 
        U16 oldcolor; 
        HANDLE hCon
=GetStdHandle(STD_OUTPUT_HANDLE); 
        CONSOLE_SCREEN_BUFFER_INFO bInfo; 
        GetConsoleScreenBufferInfo(hCon, 
&bInfo ); 

        oldcolor 
= bInfo.wAttributes;
        
if(oldcolor!=color)
            SetConsoleTextAttribute(hCon,color); 

#ifdef _UNICODE
        _tsetlocale(LC_CTYPE,TEXT(
""));
#endif

        va_start( argList, format ); 
        _tprintf( format,argList); 
        va_end( argList );

#ifdef _UNICODE
        _tsetlocale(LC_CTYPE,TEXT(
"C"));
#endif
        
if(oldcolor!=color)
            SetConsoleTextAttribute(hCon,color);  
    }
 

posted @ 2010-08-20 01:00 麒麟子 阅读(292) | 评论 (0)编辑 收藏

字符输出与编码集的问题。

今天早上起来就兴致脖脖地开始编写引擎的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;
}

posted @ 2010-08-19 01:19 麒麟子 阅读(354) | 评论 (0)编辑 收藏

仅列出标题
共38页: First 11 12 13 14 15 16 17 18 19 Last