BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #12928同步于 2008/9/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

我的(部分)开源游戏项目,欢迎大家来交流。(增加Linux版本)

kissme
2008/9/22镜像同步18 回复
我的(部分)开源游戏项目,欢迎大家来交流。 https://sourceforge.net/projects/gamepans/ 是个以脚本为主体的小游戏框架。 支持较大的扩展性。 20秒的算法是X22写的。 其它是我自己写的。 目前已上传了Main和UIBase的工程代码。 Windows下运行,Linux的版本要等一些时间。 08.10.6 Alpha 1.1 is avalible now.Linux is surpported for adding SDL Engine in Linux. But Linux version is only demo quality temporarily.there are some memory leaks does not be fixed yet, And still require SDL and iconv in your machine envirement.
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
yywbupt机器人#1 · 2008/9/22
【 在 kissme 的大作中提到: 】 : 我的(部分)开源游戏项目,欢迎大家来交流。 : https://sourceforge.net/projects/gamepans/ : 是个以脚本为主体的小游戏框架。 : ................... 软开欢迎你~
kissme机器人#2 · 2008/9/22
软开的氛围比较浮,所以暂时放这里了。
rebirthatsix机器人#3 · 2008/9/22
oyeah,看看
kissme机器人#4 · 2008/9/22
现在的人学编程吧,目的都比较功利性,就想学高级,就想学内核, 我提出务实编程,想给为数不多,想体验代码乐趣的人,一些欣赏代码的空间。 在此工程的代码中,有一段比较难的就是文字显示。 这里使用了典型的图片字,即将所有文字根据编码顺序画在一张图中, 要画某个字时,先对字的符号解析,计算出在图的位置,再用活字印刷的方法画出来。 看下,判断是否为GBK的代码: bool hgeFontCN::IsGBK(const char *chr) { if (strlen(chr) >= 2) { unsigned char ch1 = *chr; unsigned char ch2 = *(chr+1); //0x81-0xFE (129-254) 0x40-0xFE (64-254) if (ch1 >= _firstBegin && ch1 <= _firstEnd && ch2 >= _secBegin && ch2 <= _secEnd) { return true; } } return false; }
kissme机器人#5 · 2008/9/22
画字: void hgeFontCN::Render(float x, float y, int align, const char *string) { // return; int i,j,k; int o,p,q,r; o=p=q=r=0; float fx=x; while(*string) { if(*string=='\n') { y += fHeight; fx = x; } else { if (IsGBK(string)) { i = (unsigned char)*string; j = (unsigned char)*(string+1); k = 0; o = j & 0x0F; p = ((j & 0xF0) - _secBegin) >> 0x04; q = (i - _firstBegin) % _fontCount; r = (i - _firstBegin) / _fontCount; spr[k]->SetTextureRect( 2*fWidth*(o+(0x0F+1)*q), fHeight*(p+((_secEnd - _secBegin)/0x10+1)*r), 2*fWidth,fHeight,true); spr[k]->RenderEx(fx,y,0.0f,1.0f,1.0f); string++; fx += 2*fWidth; } else { i = (unsigned char)*string; j = i / 0x10; i = i % 0x10; sprEn->SetTextureRect(2*fWidth*i,fHeight*j,fWidth,fHeight,true); sprEn->RenderEx(fx,y,0.0f,1.0f,1.0f); fx += fWidth; } } string++; } }
kissme机器人#6 · 2008/9/22
事后看看,这段代码果然很经典。 如果有人自以为然,那就看看背后的工作吧。 开始不知道GBK编码,于是上网查,终于知道了判断GBK的方法。 在LINUX下多为UTF8,为了简化工作,上网查,找到了用iconv库转UTF8成GBK的方法。 为了把字画到图上,上网找了个取字模的程序,修改了一番。终于有了字图制作器。 然后才开始是画字的逻辑代码。
boxer机器人#7 · 2008/9/22
赞一下
noname机器人#8 · 2008/9/22
支持!!!
PtwCJ机器人#9 · 2008/9/22
其实他们只是装作很浮...... 【 在 kissme 的大作中提到: 】 : 软开的氛围比较浮,所以暂时放这里了。