设为首页收藏本站官方微博
12
返回列表 发新帖

其他 TGA图片字库制作

[复制链接]
楼主: rinat
打印 上一主题 下一主题

[其他] TGA图片字库制作

11#
发表于 2011-7-5 14:52 | 只看该作者
本帖最后由 solidji 于 2011-7-5 14:52 编辑 7 R* b% {& L$ Y8 Q

7 n* w& J- @6 s5 h5 I) e重新做一张更方便
9 ?( r4 f# M! c0 h7 ?& m+ U: H如果非要加在后面,也可以自己实现
) Z/ J/ _5 E! N% B: ]# G我给你提供个思路。我们先假设原来的字库你已经找到,并且是纹理图片字库
9 q' ]- f4 W/ H$ X* w首先
+ F. u- a- M% p/ |0 g, e( A2 ECreateVertexBuffer(sizeof(CnFontVertex)*6*8192, D3DUSAGE_DYNAMIC, FVF, D3DPOOL_SYSTEMMEM, ppVertexBuffer,pSharedHandle);//创建一个包含8192个字符的足够大的字库缓存: V( y( V% g- s" h9 {5 l
                g_pFontVertexBuffer = *ppVertexBuffer;
3 ^6 n: r! D  i2 j, v$ ]                g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);5 U- r( J* H! Z" M) y$ M6 ?" ]
                g_pFontVertexBuffer->Unlock();1 b( q. Z, }: y
: i& `* {* v0 g  X% L
CString font = _T(".\\font.bmp");//这个是自己要添加的新的字库, i) d8 k! Z  g- k/ w
                        D3DXCreateTextureFromFileEx(
% p  B/ R( h: \8 C, [                        m_device,8 C, [! b/ ]4 y! z$ o, v& H! `
                        font,
# R7 Y1 a+ R) R# W5 L8 \) {! K! n                        D3DX_DEFAULT,
; t( b. m' r, R3 l) T! J                        D3DX_DEFAULT,% x+ {7 A/ H/ S1 P
                        D3DX_DEFAULT,
4 S: r$ d& a7 v' K; p8 ^' E6 \                        0,) D2 Y6 d" V9 l, ]5 d
                        D3DFMT_A1R5G5B5,( p8 r4 g& C6 l0 G8 g
                        D3DPOOL_MANAGED,# c- P6 w* D% [% h9 ~5 v
                        D3DX_FILTER_TRIANGLE,
7 M1 U' N' z% B% t                        D3DX_FILTER_TRIANGLE,
. }0 x( o# @3 p& I& E7 H                        D3DCOLOR_RGBA(0, 0, 0, 255),
& a' G8 J/ E0 u0 P3 _                        NULL,/ w4 S8 p+ a' k/ _( Y
                        NULL,
. `& D' q5 y' P9 k, e2 h, V                        &Tex);2 N1 F6 G* }" J& J5 i* L

7 ]! I. o) o' J5 BIDirect3DTexture9* in = Tex->Lock(0, pDesc.Size, &pbData, D3DLOCK_READONLY);
6 b' i8 a; H) j9 y+ O! k+ d6 Q9 B把Tex里的数据lock到pbData/ t. @+ k, |: r5 P5 R
然后把pbData里的数据copy到mem接在原本的字库后面- h* K3 K, b1 a, S5 m
g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);/ F" @# Q6 w  s' g$ _; f  q% m, B
memcpy(pbData,mem,len);
, g+ Q  C( _; Z" h' O1 e6 Q9 cg_pFontVertexBuffer->Unlock();7 ?9 W7 u9 L5 x; B
( v+ J  x7 ~7 F6 L! y- x$ Y7 ~$ E7 [
最后保存成TGA; M: K$ C9 ^5 d( f" I
D3DXSaveTextureToFileA(“new字库.tga”, D3DXIFF_TGA, ppVertexBuffer, NULL);* e# V+ N; [9 V

8 H! i6 T( `- Q$ Q* E. n! M这个代码我没调试随手写的,表达下思路而已,不可照搬
回复 支持 反对

使用道具 举报

12#
发表于 2011-7-5 16:33 | 只看该作者
魔鸢 发表于 2011-7-4 18:20   `+ u7 r+ }9 M2 s" [7 p, ]# T
TGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~

' l; X! x( C, ^# D: V) y生成字库这种东西交给美工嘛?看来美工需要去学编码,尤其是了解图像相关API,然后去写代码,生成包含需要的字符的图片了...
回复 支持 反对

使用道具 举报

13#
发表于 2011-7-5 16:39 | 只看该作者
回复 rinat 的帖子
, Q4 N. b# l% [  j
% L$ U3 @$ \4 ^9 X! R- z1 J' qhttp://www.game798.com/html/2007-03/3147.htm" R7 ~* q. W. X% }; a$ v' d
  M/ p+ q( u1 o8 P7 c
希望对你有用,一个TGA库.其实百度一下.挺多的.只要能将生成的像素位图转换为带通道的TGA就可以了,至于压缩或者非压缩,看你的游戏了,反正这种库都支持.3 r* c) T# u: ?8 H% l& c

5 z! q# }( Q1 u  k+ D还有就是,如果你要用现成的软件修理字库图,首先你的新的文字量要少,比如几个或者几十个,那么工作量可以接受,如果你要把一个A码的TGA字库扩充到U码,那么手动...我觉得不显示,至少我这种等级的闲人做不来..
7 v( }, a8 d+ [' \* M9 v& e, i; g& |( s+ h$ V% U
总结一下,个人感觉,字库的话.还是自己写个小软件,来的快.因为你不是想还是使用原来的方式进行字库读取么。
8 k3 n8 z- s, K8 a( C; e2 P/ w; u. T" z# t4 q3 i9 y9 y2 X
或者还有2条路,inject,劫持掉他的显示方式,直接用你的绘图方式来输出文字,007大仙很熟悉,你可以PM或者QQ或者怎么怎嘛他.
$ R4 d% X0 c; v9 f. n: f. b7 r( M# q
最后一条路就是放弃.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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