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

其他 TGA图片字库制作

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

[其他] TGA图片字库制作

11#
发表于 2011-7-5 14:52 | 只看该作者
本帖最后由 solidji 于 2011-7-5 14:52 编辑 1 T; T& n$ Q3 @2 E

, F/ ?  @  |5 n" W4 d6 U重新做一张更方便; [+ O1 }# |" D
如果非要加在后面,也可以自己实现" h# ^' {; a& P6 u( q* x, B7 x
我给你提供个思路。我们先假设原来的字库你已经找到,并且是纹理图片字库
. Z; U: r( O* K, S5 n1 I首先
0 R& d) A; W: B+ h  c) m5 K, J* fCreateVertexBuffer(sizeof(CnFontVertex)*6*8192, D3DUSAGE_DYNAMIC, FVF, D3DPOOL_SYSTEMMEM, ppVertexBuffer,pSharedHandle);//创建一个包含8192个字符的足够大的字库缓存
6 r2 q4 \; J/ u. r$ ?3 Z                g_pFontVertexBuffer = *ppVertexBuffer;
7 d6 G& y2 ^) r/ c6 R) O                g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);
1 H) v' e1 a3 f1 ^7 F$ h" c* x                g_pFontVertexBuffer->Unlock();& H+ B( V0 F9 T
& h; U' a3 E2 m3 C& U. N( T
CString font = _T(".\\font.bmp");//这个是自己要添加的新的字库
9 U6 s" g8 x2 b7 R# U9 d" f8 e                        D3DXCreateTextureFromFileEx() g  ]1 _) z+ L3 Z8 [3 F
                        m_device,
! h( J! u5 u# l- E                        font,5 I4 E3 E, \/ h
                        D3DX_DEFAULT,! _; i" V3 a* @/ V# v, }
                        D3DX_DEFAULT,# l5 Q6 I3 _$ {5 f2 ]
                        D3DX_DEFAULT,
2 z9 A- Q) Q( T8 M- k; |                        0,# g3 E( S4 X. D  I+ e& N* a
                        D3DFMT_A1R5G5B5,2 O0 D) U% x. c- V, N2 |
                        D3DPOOL_MANAGED,& A$ k* O1 O, x
                        D3DX_FILTER_TRIANGLE,
% B" D: X, `0 K; w                        D3DX_FILTER_TRIANGLE, * v- z& k" r! o7 y& F5 E" Q
                        D3DCOLOR_RGBA(0, 0, 0, 255),# W" S, K/ x. r- a: y
                        NULL,
* O; `+ a% K* l/ E                        NULL,
+ U3 r/ I( M+ x- [# |5 P3 Y                        &Tex);
9 z; L+ W) k2 g0 ~" w: C% ^6 H7 ~8 M# r# _8 V: s8 V
IDirect3DTexture9* in = Tex->Lock(0, pDesc.Size, &pbData, D3DLOCK_READONLY);
* E2 d7 n/ p6 ]1 }# O把Tex里的数据lock到pbData7 A! ^2 N7 g* [) x' K1 V6 i
然后把pbData里的数据copy到mem接在原本的字库后面
. c) }6 T/ i# {- Z9 sg_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);
  v4 ?4 d" }# ]0 k" fmemcpy(pbData,mem,len);
" y+ ?5 ]4 U, n0 C! U) w3 A7 ag_pFontVertexBuffer->Unlock();, s4 c2 L% W' E- t4 d
( n' G9 `9 b" Y9 S( i
最后保存成TGA
  v3 @0 j+ D+ r& |( N+ b% \  H6 lD3DXSaveTextureToFileA(“new字库.tga”, D3DXIFF_TGA, ppVertexBuffer, NULL);
- M; g4 {3 J3 {' X" A$ e& b9 s$ U3 a$ j' O8 I/ K. _% p+ U
这个代码我没调试随手写的,表达下思路而已,不可照搬
回复 支持 反对

使用道具 举报

12#
发表于 2011-7-5 16:33 | 只看该作者
魔鸢 发表于 2011-7-4 18:20 2 ~( A! j6 q4 y
TGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~

6 c+ R3 n( K5 C' H. i7 r4 Z4 P生成字库这种东西交给美工嘛?看来美工需要去学编码,尤其是了解图像相关API,然后去写代码,生成包含需要的字符的图片了...
回复 支持 反对

使用道具 举报

13#
发表于 2011-7-5 16:39 | 只看该作者
回复 rinat 的帖子: Z9 e* P. `. ?* f
5 H2 u0 m6 Y8 A0 ?
http://www.game798.com/html/2007-03/3147.htm
# B  J0 M0 r3 Z9 f& ^
; v8 m; w, D0 e9 l3 ]希望对你有用,一个TGA库.其实百度一下.挺多的.只要能将生成的像素位图转换为带通道的TGA就可以了,至于压缩或者非压缩,看你的游戏了,反正这种库都支持.! q3 Z  d9 R! Y

0 v  e' p+ r1 @* s2 J6 l4 N还有就是,如果你要用现成的软件修理字库图,首先你的新的文字量要少,比如几个或者几十个,那么工作量可以接受,如果你要把一个A码的TGA字库扩充到U码,那么手动...我觉得不显示,至少我这种等级的闲人做不来..8 B' A, h: w: e! t! y# o
. T4 W/ y8 T8 j* u8 u* {: B
总结一下,个人感觉,字库的话.还是自己写个小软件,来的快.因为你不是想还是使用原来的方式进行字库读取么。. C+ J( |9 W- G1 X

- d* T& V% S& J* e7 x2 o" e或者还有2条路,inject,劫持掉他的显示方式,直接用你的绘图方式来输出文字,007大仙很熟悉,你可以PM或者QQ或者怎么怎嘛他.5 J  ]: B' |0 j
2 @* Q: g2 U7 F: k& n% i9 m
最后一条路就是放弃.
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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