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

其他 TGA图片字库制作

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

[其他] TGA图片字库制作

11#
发表于 2011-7-5 14:52 | 只看该作者
本帖最后由 solidji 于 2011-7-5 14:52 编辑 6 K7 I4 y  Y$ D* t

. r  U6 y# e: S5 ^+ y8 Q: [重新做一张更方便! x& U$ n' @% u6 E9 U; |: ]8 N' O5 F
如果非要加在后面,也可以自己实现8 U' h" \( ?5 I  w  [
我给你提供个思路。我们先假设原来的字库你已经找到,并且是纹理图片字库8 ?1 B, i9 p# `1 a8 u! d/ d" T/ x
首先' j" ~; T; L. _- n7 Q2 u. i
CreateVertexBuffer(sizeof(CnFontVertex)*6*8192, D3DUSAGE_DYNAMIC, FVF, D3DPOOL_SYSTEMMEM, ppVertexBuffer,pSharedHandle);//创建一个包含8192个字符的足够大的字库缓存
9 `& x( ^! P# c4 A/ y                g_pFontVertexBuffer = *ppVertexBuffer;$ y# ?; p' c) K
                g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);
4 Z* m, {& }. z0 b! E                g_pFontVertexBuffer->Unlock();
* D5 |/ w& H% j. Q3 Y: ~1 N& m
. P; W2 g% }, t! p$ j! W7 cCString font = _T(".\\font.bmp");//这个是自己要添加的新的字库
' @( R1 ~( Y# x3 H$ g                        D3DXCreateTextureFromFileEx(
4 M; @2 L; w; C# U( Y9 f4 \  }% U* ^                        m_device,$ J1 o* L$ R: @, S3 ?" H; Y
                        font,5 Q2 J5 Y1 S: }7 N; e9 Y- G7 o
                        D3DX_DEFAULT,7 P  \# q; \4 J% O- h
                        D3DX_DEFAULT,
4 G  T1 `6 r# g& q: v( k                        D3DX_DEFAULT,
$ G: o; X; X7 Q2 [3 }                        0,
( h- z* {9 K8 {. o+ f9 `$ S( v                        D3DFMT_A1R5G5B5,& s2 I# A) N/ V7 l* e9 v) `
                        D3DPOOL_MANAGED,! j& f4 p- V: i! _
                        D3DX_FILTER_TRIANGLE,4 b' C  X7 s/ f: G! D
                        D3DX_FILTER_TRIANGLE, $ p5 j9 x/ N1 T" v# M$ d$ b
                        D3DCOLOR_RGBA(0, 0, 0, 255),4 L8 y+ e9 B4 g
                        NULL,
* q8 s) D* b. ^. w$ j* \                        NULL,% A  L4 ?8 d  y" S1 n
                        &Tex);3 [- P, B* G" Q4 F$ Q, Q
- {8 _4 F4 y+ p1 Q. }# q- k+ W
IDirect3DTexture9* in = Tex->Lock(0, pDesc.Size, &pbData, D3DLOCK_READONLY);  {2 M2 d: w( Y- F9 h
把Tex里的数据lock到pbData
5 Q# E3 X. D$ {; K$ z9 G8 N然后把pbData里的数据copy到mem接在原本的字库后面
' Q: S+ v9 H' N+ }# o4 @: Kg_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);
) t# [7 }+ {8 U4 rmemcpy(pbData,mem,len);! C3 ^" w6 m8 ^, p0 d  l0 v
g_pFontVertexBuffer->Unlock();
  t, x% o: y4 ]# Z, T# C% @4 i
5 F! [& k  H; R4 G最后保存成TGA
5 L$ m# r9 ~9 x6 t. kD3DXSaveTextureToFileA(“new字库.tga”, D3DXIFF_TGA, ppVertexBuffer, NULL);
  Z8 X; M& n; G9 @% H; Y2 j/ F/ y- X) U+ t4 U  ?
这个代码我没调试随手写的,表达下思路而已,不可照搬
回复 支持 反对

使用道具 举报

12#
发表于 2011-7-5 16:33 | 只看该作者
魔鸢 发表于 2011-7-4 18:20
5 i% Q) s% P4 A) b& I  a- N+ qTGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~
5 V+ C/ J: ~- U  c6 T5 d9 I
生成字库这种东西交给美工嘛?看来美工需要去学编码,尤其是了解图像相关API,然后去写代码,生成包含需要的字符的图片了...
回复 支持 反对

使用道具 举报

13#
发表于 2011-7-5 16:39 | 只看该作者
回复 rinat 的帖子  J. S9 S! d2 H5 G3 T& d% [
2 i! l) a, T" {$ b
http://www.game798.com/html/2007-03/3147.htm
. i0 w5 B/ `. P2 M
1 B9 B$ @5 x. H* i+ y. z# Z% I7 {希望对你有用,一个TGA库.其实百度一下.挺多的.只要能将生成的像素位图转换为带通道的TGA就可以了,至于压缩或者非压缩,看你的游戏了,反正这种库都支持.: ?, l* x. g8 ]% [1 s
/ N$ \! _9 ]8 J- n. z
还有就是,如果你要用现成的软件修理字库图,首先你的新的文字量要少,比如几个或者几十个,那么工作量可以接受,如果你要把一个A码的TGA字库扩充到U码,那么手动...我觉得不显示,至少我这种等级的闲人做不来..  k1 z  ~  b/ `: }; ~

% f( D! \+ G& K8 C6 Z总结一下,个人感觉,字库的话.还是自己写个小软件,来的快.因为你不是想还是使用原来的方式进行字库读取么。" K! t0 f1 E4 c' I/ l

1 Z3 y  m7 c+ [5 G  m或者还有2条路,inject,劫持掉他的显示方式,直接用你的绘图方式来输出文字,007大仙很熟悉,你可以PM或者QQ或者怎么怎嘛他.- W$ W" L3 `, O' @, i; T! v

5 X! y$ q8 H/ W- a( G( [  B+ l最后一条路就是放弃.
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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