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

其他 TGA图片字库制作

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

[其他] TGA图片字库制作

11#
发表于 2011-7-5 14:52 | 只看该作者
本帖最后由 solidji 于 2011-7-5 14:52 编辑 4 C& s& g6 u3 z* N/ ^

" T7 q# i+ ]- |( _重新做一张更方便5 F5 ]6 ]5 J! w! X- V: w
如果非要加在后面,也可以自己实现! _3 V6 `, u6 T( j
我给你提供个思路。我们先假设原来的字库你已经找到,并且是纹理图片字库
3 A) G/ X8 _& Y4 {& M3 m首先
' I" a# z  h$ l* \! @! aCreateVertexBuffer(sizeof(CnFontVertex)*6*8192, D3DUSAGE_DYNAMIC, FVF, D3DPOOL_SYSTEMMEM, ppVertexBuffer,pSharedHandle);//创建一个包含8192个字符的足够大的字库缓存
/ v/ t8 T- t% j( t' l$ Y                g_pFontVertexBuffer = *ppVertexBuffer;6 _+ M" }9 K$ _$ T/ ~
                g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);/ Q& I7 Y3 z- z! \
                g_pFontVertexBuffer->Unlock();+ p+ ^" [5 ~  A2 e: y, Q, q6 [

  o3 J4 p4 f! SCString font = _T(".\\font.bmp");//这个是自己要添加的新的字库
1 o# s% e4 A/ Z' G1 O& G, C) d                        D3DXCreateTextureFromFileEx(
" L3 H( h" z. [( Q6 q                        m_device,
% ], @1 q) U" U4 H) V                        font,
) M- [6 d# T# P* k. z                        D3DX_DEFAULT,
) S0 Q: w+ O" ?, L, H" V5 _                        D3DX_DEFAULT,
$ g* E9 Z' W/ H* d( ]                        D3DX_DEFAULT,) ]: l+ `9 m/ [, E" f% h" y3 a
                        0,4 U3 O% }" ]7 {  S) b6 H+ H% U
                        D3DFMT_A1R5G5B5,
( t; z/ }! x1 F, Q                        D3DPOOL_MANAGED,5 {, \; I' d5 N9 p
                        D3DX_FILTER_TRIANGLE,0 P+ Q" `# V3 u$ T/ l3 B8 ?
                        D3DX_FILTER_TRIANGLE, # z0 O0 b6 K% J5 ^$ a: g
                        D3DCOLOR_RGBA(0, 0, 0, 255),
/ Q2 _  {+ x: [3 p* H8 x                        NULL,
/ F! Q: [$ {' X( Y" v: \                        NULL,
3 K' D+ z& ]% w& j1 T" O4 N                        &Tex);
' z2 H1 {6 c; k8 _  t: x! m+ H4 U# k& n& i
IDirect3DTexture9* in = Tex->Lock(0, pDesc.Size, &pbData, D3DLOCK_READONLY);9 @, @( }3 t& r. C) O7 w
把Tex里的数据lock到pbData
: J/ v7 S* N$ ~* v然后把pbData里的数据copy到mem接在原本的字库后面& M: ]0 y: I7 W3 L' H6 z
g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);1 {! K1 `% |) m$ q2 O0 a( E
memcpy(pbData,mem,len);0 X9 y) {0 Y0 A9 M% v
g_pFontVertexBuffer->Unlock();
: Q' r3 P! U5 y# G
( U( x5 }3 U$ j& Z) G最后保存成TGA
4 H$ R) u7 k3 K  e" }7 T" S4 `' J. FD3DXSaveTextureToFileA(“new字库.tga”, D3DXIFF_TGA, ppVertexBuffer, NULL);# d4 z# K! [7 G: ?. Q; V. b

2 ]8 ~5 F  e# e1 w这个代码我没调试随手写的,表达下思路而已,不可照搬
回复 支持 反对

使用道具 举报

12#
发表于 2011-7-5 16:33 | 只看该作者
魔鸢 发表于 2011-7-4 18:20
: U5 c. _2 p5 D7 g( z# O+ f$ ATGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~
; ?3 S/ \6 i- @9 j, ^' {( y
生成字库这种东西交给美工嘛?看来美工需要去学编码,尤其是了解图像相关API,然后去写代码,生成包含需要的字符的图片了...
回复 支持 反对

使用道具 举报

13#
发表于 2011-7-5 16:39 | 只看该作者
回复 rinat 的帖子) T% O5 }* M% a0 T% u
. [+ h7 ?- q1 d$ n# \5 S
http://www.game798.com/html/2007-03/3147.htm% W, a. }5 q5 q' G( P
0 t' B) D9 s" n3 j/ q
希望对你有用,一个TGA库.其实百度一下.挺多的.只要能将生成的像素位图转换为带通道的TGA就可以了,至于压缩或者非压缩,看你的游戏了,反正这种库都支持.% o2 M# |. ^% w2 V  |

; ?. D: Q4 |! C' T; {还有就是,如果你要用现成的软件修理字库图,首先你的新的文字量要少,比如几个或者几十个,那么工作量可以接受,如果你要把一个A码的TGA字库扩充到U码,那么手动...我觉得不显示,至少我这种等级的闲人做不来..( N# }: J% ]$ Q% R: {  l0 n* E: ~1 }/ O0 X
0 {6 c; k  q& b1 o3 k2 U* h4 c
总结一下,个人感觉,字库的话.还是自己写个小软件,来的快.因为你不是想还是使用原来的方式进行字库读取么。+ ]1 l+ Y  B. z3 m5 _/ ?0 p4 h+ ^
2 c) b& c8 a) p
或者还有2条路,inject,劫持掉他的显示方式,直接用你的绘图方式来输出文字,007大仙很熟悉,你可以PM或者QQ或者怎么怎嘛他.
, F: D1 E* p, m0 z
" K. I  q- R4 F* r" {; @1 {( }最后一条路就是放弃.
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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