铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 2658|回复: 17

[其他] 一个发现,也是一个疑惑

[复制链接]
发表于 2009-8-3 21:46 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
原来游戏中物品栏显示不是列出一排排的物品图片的吗?

我尝试着把物品列表的显示改成列出物品名字,而不显示图片

怎不知卡的不行,最初我以为是别的地方问题,不过却没有发现

最后我把物品栏重新改为列出图片,效率恢复~

(显示物品名时,由于名字长,所以屏幕内容纳的物品数量是比现实图片要少的,但速度上依然明显比显示图片慢)

结论:难道游戏中处理贴图的效率高于文字???

我觉得这有点反常啊~求解!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-8-3 22:17 | 显示全部楼层
代码贴来看看??????????????
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-8-3 22:19 | 显示全部楼层
存档文件里的汉字是BIG5码,估计是转码时特占CPU或内存。

[发帖际遇]: =令狐冲=跟踪成昆进入明教密道,结果:奋勇救小昭脱险,得到小昭感谢银两14.
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-8-3 22:53 | 显示全部楼层
我也觉得不会,代码贴来看看。。。
big->unicode也不会比一张图还耗内存吧。
我觉得,应该是算法上的问题,不够精简

[发帖际遇]: waxyzwa冒充青木堂主向反清份子征收活动经费,结果:骗得银两8.
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-8-3 22:59 | 显示全部楼层
SDL_TTF显示文字效率本身就不高。需要从ttf字库中读取文字信息,然后用专门算法生成表面。
估计是处理TTF的算法占用时间。如果用点阵字体,效率应该高很多。

所以我的Lua版本中专门做个开关,缺省屏蔽坐标显示。

楼主可以尝试测量显示一个图片若干次和显示一句话若干次消耗的时间看看。

[发帖际遇]: 游泳的鱼借钱给游坦之整容,手术成功,多还你银两28.
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-8-4 07:08 | 显示全部楼层
for i1 := 0 to row - 1 do
    for i2 := 0 to col - 1 do
    begin
      listnum := ItemList[i1 * col + i2 + atlu];
      if (RItemlist[listnum].Number >= 0) and (listnum < MAX_ITEM_AMOUNT) and (listnum >= 0) then
      begin
        Drawbig5shadowtext(@RItem[RItemlist[listnum].Number].Name, i2*120+235, i1*32+120, colcolor($66),colcolor($63));
        //DrawMPic(ITEM_BEGIN_PIC + RItemlist[listnum].Number, i2 * 42 + 235, i1 * 42 + 120);
      end;
    end;

就上面这样而已,注释掉的是显示图片的语句,这不多解释了

的确是显示图片比较快~ - -!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-8-4 20:53 | 显示全部楼层
偉大的魚大大都出來解釋了,我也試了下,果然是,估計sdl_ttf這個顯示文字能力不太好吧,換一個看看有沒有兼容的或者升級的插件了。。。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-8-4 21:12 | 显示全部楼层
今天看了一下pascal版的源码。是逐字显示的。这样做效率应该不高。
如果一次直接显示一行的话,效率能高不少,可以参考我的C代码相应部分。但是偶尔会出现字体对不齐的现象。

[发帖际遇]: 游泳的鱼在福州找到唐诗三百首一本,当成辟邪剑谱送给左冷蝉,得到打赏银两25
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-8-4 21:45 | 显示全部楼层
我试了一下发现是一下子都显示出来了,可能你修改过显示文字的部分
我都忘了为什么一个一个显示文字了,大概是考虑英文字体的问题

[发帖际遇]: weyl在华山山谷捡到被令狐冲打落的宝剑,送回给宁女侠,宁女侠感谢万分,送你银两28.


[ 本帖最后由 weyl 于 2009-8-4 21:51 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-8-5 01:10 | 显示全部楼层
weyl大,我成功把drawtext的逐字显示改成一次性显示了,不过效率似乎也没有快多少

这已经可以排除drawtext效率问题了吧?

在上下左右移动物品栏的时候,还是明显地卡(其他图片什么的全部去掉了),估计是因为WideCharToMultiByte把big5转unicode的效率低下~~

有什么解决办法呢?求救!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-8-5 01:17 | 显示全部楼层
直接在物品的帖图上画上名字不就得了
像苍龙那样

[发帖际遇]: killer_zingy帮张无忌翻译小昭写的情书,得到辛苦费银两12.
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-8-5 01:20 | 显示全部楼层
这是两回事吧~显示文字比显示图片效率低,这问题是无论如何要解决的~~~

刚才忘了,这是我改的,把drawtext原来那一大陀全部删掉了,简化成这样,原来的文字缩进没有了,顺带地,所有的数字和空格变成全角
当然,用drawengtext则可解决显示数字的问题,没有必要担心

只是,让大家看看还有什么问题没有?

//显示unicode文字

procedure DrawText(sur: PSDL_Surface; word: PUint16; x_pos, y_pos: integer; color: Uint32);
var
  dest: TSDL_Rect;
begin
  text := TTF_RenderUNICODE_blended(font, word, TSDL_Color(Color));
  dest.x := x_pos;
  dest.y := y_pos;
  SDL_BlitSurface(text, nil, sur, @dest);
  SDL_FreeSurface(text);

end;

[发帖际遇]: winson7891抢了钟灵给段誉的绣花鞋,卖了有银两4。


[ 本帖最后由 winson7891 于 2009-8-5 01:23 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-8-5 01:46 | 显示全部楼层
你一屏显示多少啊?
我估计你怎么写,比群芳的20武功显示也多不了多少,而20武功似乎效率还是可以的。
要不就试试干脆直接用Unicode,看看效率会不会好些。(试的时候不用转,就把这些字直接当Unicode显示出来,是乱码也不要紧,反正只看效率。)

[发帖际遇]: weyl参与红花会陈家洛的计划:叛变勾结清廷,得到赏赐银两27.
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-8-5 02:01 | 显示全部楼层
显示~~嗯,是800*600~~似乎忘了交代

的确,不转的话比转了要明显地快了~

那weyl大,可否费点唇舌告诉小弟怎么把游戏的内码转为Unicode?或者有其他解决办法?

又或者~~不知道边打开游戏,边挂一个化繁为简什么的,会是什么样的感觉~

[发帖际遇]: winson7891在华山山谷捡到被令狐冲打落的宝剑,送回给宁女侠,宁女侠感谢万分,送你银两21.
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-8-5 11:08 | 显示全部楼层
编个转换的程序,把存档文件里面的中文转成Unicode重新写入?
不过那样涉及big5显示的就都要改了
再不像鱼那样,用码表转,不用api
还有就是干脆把耗时间的事在启动时一起做了,在启动的时候一起转成Unicode存着

[发帖际遇]: weyl捡到土龙刀一把,冒充武林至尊,被谢逊追杀,损失银两11.


[ 本帖最后由 weyl 于 2009-8-5 11:11 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-8-5 15:38 | 显示全部楼层
原帖由 weyl 于 2009-8-5 11:08 发表
编个转换的程序,把存档文件里面的中文转成Unicode重新写入?
不过那样涉及big5显示的就都要改了
再不像鱼那样,用码表转,不用api
还有就是干脆把耗时间的事在启动时一起做了,在启动的时候一起转成Unicode存着
...

我怎么觉得码表的效率更低呢- -。。。
转unicode的方法vb里是strconv
同样支持把存档文件里面的中文转成Unicode重新写入

[发帖际遇]: 黄顺坤去长白山捉火蟾,送给韦一笑,得感谢费银两19.
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-8-5 19:56 | 显示全部楼层
原帖由 weyl 于 2009-8-5 11:08 发表
编个转换的程序,把存档文件里面的中文转成Unicode重新写入?
不过那样涉及big5显示的就都要改了
再不像鱼那样,用码表转,不用api
还有就是干脆把耗时间的事在启动时一起做了,在启动的时候一起转成Unicode存着
...



多谢你的提议,我查查资料自己试试看
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-8-6 13:04 | 显示全部楼层
试过把物品名称等提取出来了,成功导入并使用,widestring格式

但悲哀地发现还是快不了多少

最后把shadowtext改成单次的text,因为全部字少画了一次,所以速度快了不少,问题解决了

而且不需要big5到unicode的转码,效率更是高,但最后想想,还是用回big5的,因为效率高不了多少,还要新增文件保存,把所有big5导入导出,改动时麻烦不说,运行时也满占资源的,尽管快点,但还是舍弃之~

结贴~

[发帖际遇]: winson7891替小昭千里送信给张无忌,途中被赵敏拦截,损失银两11.
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-11-16 03:45

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表