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

其他 TGA图片字库制作

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

[其他] TGA图片字库制作

11#
发表于 2011-7-5 14:52 | 只看该作者
本帖最后由 solidji 于 2011-7-5 14:52 编辑
# o" O5 g- @8 p) c
  H) f/ R; B( O重新做一张更方便' h+ K0 J& S  O: C# j
如果非要加在后面,也可以自己实现
3 Y0 v; G5 u$ \- }我给你提供个思路。我们先假设原来的字库你已经找到,并且是纹理图片字库* Z% M! x. \" d% A4 e8 t
首先
% D, f/ ?. y! Y1 O% S3 b% @CreateVertexBuffer(sizeof(CnFontVertex)*6*8192, D3DUSAGE_DYNAMIC, FVF, D3DPOOL_SYSTEMMEM, ppVertexBuffer,pSharedHandle);//创建一个包含8192个字符的足够大的字库缓存
9 W" z/ E1 W9 _" t9 h( l) E                g_pFontVertexBuffer = *ppVertexBuffer;, e  q9 A3 b- c- W% S+ S& _/ e3 Q$ t
                g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);) s) L2 Y0 u4 N( ^# H
                g_pFontVertexBuffer->Unlock();/ w6 K- s, N4 i& k2 C, a8 ~; t6 Q

/ o4 X: D9 f- w8 W) ]CString font = _T(".\\font.bmp");//这个是自己要添加的新的字库/ b# }# U  q2 A) ~6 B" j
                        D3DXCreateTextureFromFileEx(
; i2 ^1 K/ Y5 t+ n) C                        m_device,
% O6 O/ a- M! ~4 M                        font,
' R+ d! u# z( m7 q                        D3DX_DEFAULT,- k5 }& e4 |. R6 N
                        D3DX_DEFAULT,; ?- c4 G" e: `9 K+ P. f5 C
                        D3DX_DEFAULT,6 \  f  [2 h# Y( S) F2 q
                        0,
' N+ I" S2 Q. A' M; k                        D3DFMT_A1R5G5B5,1 @$ a1 f+ Q# \; x5 ]9 E
                        D3DPOOL_MANAGED,
! Z& a7 ]0 F6 G, `3 c& J                        D3DX_FILTER_TRIANGLE,+ w1 R  X! d; n. F  t( B! Y
                        D3DX_FILTER_TRIANGLE,
- S! y/ r) k0 J1 w# [9 q* q5 M                        D3DCOLOR_RGBA(0, 0, 0, 255),
! c  h) R& q' f$ h                        NULL,
  b/ s. r! f) c, i4 f                        NULL,
: Z' G. \- g, m                        &Tex);
+ l9 k; b1 h1 K! r6 p4 L' v$ H
0 Q! V+ h$ p2 L9 \/ J4 F& gIDirect3DTexture9* in = Tex->Lock(0, pDesc.Size, &pbData, D3DLOCK_READONLY);
8 j; I8 ?3 Q8 X% D, M& k& F把Tex里的数据lock到pbData
9 a- {- d: C$ [9 H9 C# f* X然后把pbData里的数据copy到mem接在原本的字库后面
4 G% V( c$ `0 Hg_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);$ a+ v3 m4 b" T4 y2 |& I1 S
memcpy(pbData,mem,len);
4 C; d; m# @2 E* t& d1 Zg_pFontVertexBuffer->Unlock();
/ `  f4 f# ~  R7 H. v# J
2 m' i8 o3 k1 ~& q& k  h2 w' a  z最后保存成TGA# e2 b5 C6 e! A) t
D3DXSaveTextureToFileA(“new字库.tga”, D3DXIFF_TGA, ppVertexBuffer, NULL);
/ ^% j$ E6 \  u& {
* `9 ]* f4 P2 t+ D) V这个代码我没调试随手写的,表达下思路而已,不可照搬
回复 支持 反对

使用道具 举报

12#
发表于 2011-7-5 16:33 | 只看该作者
魔鸢 发表于 2011-7-4 18:20
( X, p8 [$ v6 }5 i1 kTGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~
2 I, j9 ~1 Z+ ?' i5 ?/ `; }
生成字库这种东西交给美工嘛?看来美工需要去学编码,尤其是了解图像相关API,然后去写代码,生成包含需要的字符的图片了...
回复 支持 反对

使用道具 举报

13#
发表于 2011-7-5 16:39 | 只看该作者
回复 rinat 的帖子
& s1 R7 B  {. `4 c* c
5 r4 U# @( V2 yhttp://www.game798.com/html/2007-03/3147.htm
+ I; h2 t0 Q+ U5 Y/ ?/ s+ D1 v! e; E, ~) b+ L3 }
希望对你有用,一个TGA库.其实百度一下.挺多的.只要能将生成的像素位图转换为带通道的TGA就可以了,至于压缩或者非压缩,看你的游戏了,反正这种库都支持.$ m; u4 D$ C/ u8 q

# k9 q  P# e" q) [还有就是,如果你要用现成的软件修理字库图,首先你的新的文字量要少,比如几个或者几十个,那么工作量可以接受,如果你要把一个A码的TGA字库扩充到U码,那么手动...我觉得不显示,至少我这种等级的闲人做不来..7 L' L% ?0 u+ s& }

7 ^& o4 I; T% c/ d: o) ]2 ]总结一下,个人感觉,字库的话.还是自己写个小软件,来的快.因为你不是想还是使用原来的方式进行字库读取么。
. @) ~% r/ `  r) A
% ~& X4 b7 J; J* t, f或者还有2条路,inject,劫持掉他的显示方式,直接用你的绘图方式来输出文字,007大仙很熟悉,你可以PM或者QQ或者怎么怎嘛他.
  ~1 Z6 S; G: T6 L3 [4 u
3 J/ r! l. _9 ]# D" T+ E最后一条路就是放弃.
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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