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

其他 TGA图片字库制作

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

[其他] TGA图片字库制作

11#
发表于 2011-7-5 14:52 | 只看该作者
本帖最后由 solidji 于 2011-7-5 14:52 编辑
. [( p& @8 I3 D% k: r7 I& Y1 `+ W  s$ e0 ^' a/ K: r+ v0 g
重新做一张更方便( O1 p5 [/ i8 u$ z; E
如果非要加在后面,也可以自己实现
- `: c" o: {% h1 ~: j% G我给你提供个思路。我们先假设原来的字库你已经找到,并且是纹理图片字库
$ I0 H- D# F# c首先# f( ~% p/ Y0 x! c
CreateVertexBuffer(sizeof(CnFontVertex)*6*8192, D3DUSAGE_DYNAMIC, FVF, D3DPOOL_SYSTEMMEM, ppVertexBuffer,pSharedHandle);//创建一个包含8192个字符的足够大的字库缓存/ K+ w! q8 ]; o; @
                g_pFontVertexBuffer = *ppVertexBuffer;
9 @% k! l4 M+ v- I! D' A                g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);/ N$ f  i* [' l: z" I
                g_pFontVertexBuffer->Unlock();
- a  L/ j" D  K* V
6 W9 F8 n: @6 m* r% Y  z! ]CString font = _T(".\\font.bmp");//这个是自己要添加的新的字库
$ x! s6 a0 V0 S                        D3DXCreateTextureFromFileEx(! X  H5 [: ^3 H' n& u
                        m_device,2 o! H- {  K; G/ A
                        font,
4 z6 `4 d6 }, Z8 u6 _& S                        D3DX_DEFAULT,) \: I1 L7 n6 |& W
                        D3DX_DEFAULT,0 Q. a2 k3 G5 B" C
                        D3DX_DEFAULT,9 \1 o. p/ c2 C, Q% d- F/ C! g
                        0,  u7 ~5 @( t- i8 u+ P
                        D3DFMT_A1R5G5B5,! P8 r, B& V$ _  j
                        D3DPOOL_MANAGED,  _2 n# X+ l/ n7 b0 S% ^# n
                        D3DX_FILTER_TRIANGLE,9 X" j6 ^1 k1 \" e; q: G
                        D3DX_FILTER_TRIANGLE,
% Y1 O' _% J! B0 H; j/ l; ^                        D3DCOLOR_RGBA(0, 0, 0, 255),1 V) m- v! V1 D' i
                        NULL,
, h( S- n* e) {# b8 Y) `" x                        NULL,0 j7 W3 E, Y: g
                        &Tex);' A+ w; J. }' F+ o" ^) C# f1 q
% X0 O: I5 i# @) e
IDirect3DTexture9* in = Tex->Lock(0, pDesc.Size, &pbData, D3DLOCK_READONLY);
! t% |6 n7 m9 Q, f/ Q- S把Tex里的数据lock到pbData/ X( Q( Y/ I3 Y( a& ^9 m
然后把pbData里的数据copy到mem接在原本的字库后面+ X2 C" }4 i% p. J" [+ }% a! w. g
g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);1 }- H* B  C- N2 R* w( K
memcpy(pbData,mem,len);$ o7 u+ I. |- R  q. t. f1 P8 b
g_pFontVertexBuffer->Unlock();; }$ ~' z0 P) S% h5 f# E
# h4 ~/ Z; ~/ j
最后保存成TGA
8 b. @8 ~4 H9 FD3DXSaveTextureToFileA(“new字库.tga”, D3DXIFF_TGA, ppVertexBuffer, NULL);+ G' q+ y& j- @; r. L9 _1 d

& @$ g( g8 S' e& r$ K. a4 ?- i这个代码我没调试随手写的,表达下思路而已,不可照搬
回复 支持 反对

使用道具 举报

12#
发表于 2011-7-5 16:33 | 只看该作者
魔鸢 发表于 2011-7-4 18:20 . S- w& {! W$ |/ K6 ^6 ]& J
TGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~
; m" d* d) s; Z' N0 i5 G( t; X
生成字库这种东西交给美工嘛?看来美工需要去学编码,尤其是了解图像相关API,然后去写代码,生成包含需要的字符的图片了...
回复 支持 反对

使用道具 举报

13#
发表于 2011-7-5 16:39 | 只看该作者
回复 rinat 的帖子
+ j: \/ x" B0 |2 O  }6 ?: H8 z, y) `1 H; w. f# m6 W! y
http://www.game798.com/html/2007-03/3147.htm
4 L! l% `4 R9 Z1 n* I3 D4 W8 S. A5 ^" ~, u
希望对你有用,一个TGA库.其实百度一下.挺多的.只要能将生成的像素位图转换为带通道的TGA就可以了,至于压缩或者非压缩,看你的游戏了,反正这种库都支持.% S% q! T/ e' @7 n6 q
. l/ x1 V9 E7 v6 G
还有就是,如果你要用现成的软件修理字库图,首先你的新的文字量要少,比如几个或者几十个,那么工作量可以接受,如果你要把一个A码的TGA字库扩充到U码,那么手动...我觉得不显示,至少我这种等级的闲人做不来..
9 w, `1 n) ~' g1 L% U+ P$ H8 |5 C$ |' G, ^1 }
总结一下,个人感觉,字库的话.还是自己写个小软件,来的快.因为你不是想还是使用原来的方式进行字库读取么。1 E' r7 j. h( c+ h( O" p, l9 j

: @8 O+ ?/ v* M, g) \1 h( k或者还有2条路,inject,劫持掉他的显示方式,直接用你的绘图方式来输出文字,007大仙很熟悉,你可以PM或者QQ或者怎么怎嘛他.5 ~' O- {& @8 I

+ G2 R$ Q! E3 w3 x" M4 E/ }* L最后一条路就是放弃.
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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