1、首先修改字体,让我们需要显示的文字等宽等高。 & t G' t Z2 O7 x& f
理解正确
2 s3 p3 d5 q. b1 ~3 p1 ?# b2 R5 o* D9 r
2、然后修改要显示的文本,产生类似条码的东西。比如聪允镜腛ption,我们可能需要改成■ ■■■ ■
; e, x/ c% @; D& T# T7 x6 `基本理解正确。
* l8 w* X8 N, K9 C5 b2 Z1 x条形码只用于识别屏幕下方黑色背景的字幕。
9 T8 _( p5 w4 I6 Q b注意图片字库有多个,就是说有多个tga. - u% M) _* x& y1 q2 ^* p3 b( [
- X0 L8 B( Q* c4 K G3 ^由于图片字库可以自己定义每个字符的宽高,我想定义2个宽高都是1个像素的字符。 . X8 w1 M3 T" L2 m' k$ d: z# M/ Z: p
一个是有色点,一个是透明点。显示出来就是一个像素级的条形码。这个能理解吧。 # c, Q5 A/ H, T$ `1 p8 ~- o5 ^: o
, d; |5 e7 `0 n% R: ?) L- M- y# V
3、修改文字显示的位置,尽量让每个场景的文字都显示在同一个地方。
5 {( i. J% W% ^ H1 o* {5 r理解正确
3 l) ?/ F6 ^3 U2 u+ } b! \8 y& ^: k+ Y9 _2 h, |, U4 P2 h. w
! `* c4 D h) E( m- k
4、另外运行一个程序,动态监测屏幕,发现类似条码的部分就去比照对码表,符合的就用DirectDraw技术将字幕覆盖原画面。
7 j, }% w2 r2 [) I4 P理解正确 % |- V+ X0 G$ t2 A; W
这个游戏用的是dx9,不是DirectDraw。 9 H9 g+ _; E, }
dx9 proxy dll技术你可以再看看我发的帖子。
6 G; S0 ^; g7 g5 C
* i' a! Z3 p+ x& y+ y. T+ c基于我上述的理解,我有几点不明白的地方:
2 d9 [" ]- R' C3 K0 W. r1、方块的显示用什么字符呢?
. p8 p8 D# B U, {这个上面解释了
2 t Y7 D/ o, z3 g( v/ x; j: u2 i% r8 G: j+ N
2、如果单纯是方块和空格的变化,那跟二进制差不多,需要的位数就会很长才能满足需要; 7 j/ z# `. v/ a7 r+ o8 X
不错,要12-13 位,不过是像素级的,实际上很短。
. V/ s" A# z) T就算比较长,我的字幕写上去之前,会先画个黑色矩形上去覆盖掉。 : d0 }0 T, D: q& L0 H& E
所以不会有问题。 # x Y: h+ b; R5 q1 n
# t/ y. b% q) a6 I' B$ M3、关于像素级二维码,我没看明白。怎么生成? " @. Z" M. O0 @) S- d' U! g
上面的都理解的话这个也不难。 , l( ^0 a: x& N! F; q% N9 ^
道理和条形码类似,不过二维码和条形码用的不是同一个tga。 ; L9 K& R8 Z g5 A9 i+ b) E
二维码对应屏幕中央字幕。 5 q8 z5 S6 z) X8 b: A
条形码对应屏幕底部字幕。 # `& `! A- r& A
) @% J" @# v4 N
二维码是一个3x3 像素级的小块,这样面积最小,要知道,在屏幕中央字幕显示的时候。
2 s7 v2 v9 q& n) }8 l0 E4 V, \* W由于有游戏背景,所以不能先画一个黑色矩形上去,所以要求二维码的面积足够小。 0 X' m) H( a$ Y
0 H0 |) U) u3 U0 X3 `
二维码 是一个ID 对应一个ASCII 码,再对应1个3x3 像素级的小块
- e5 \9 O. G. L) F% N0 r条形码 是一个ID 对应 12-13 个ASCII 码 再对应 12-13 个1x1 像素级的小块 ! q. |/ n0 i1 s& \5 d1 s. m+ u4 b; d. N
- L8 P) U/ i8 Q; ^) X明白了吗? |