1、首先修改字体,让我们需要显示的文字等宽等高。
7 r, b4 R0 l& \$ B理解正确 4 B' \$ ?* a- R% L! o
% @: p5 v! M& \ o; Y3 d2、然后修改要显示的文本,产生类似条码的东西。比如聪允镜腛ption,我们可能需要改成■ ■■■ ■
; q- `) z# B/ i4 E0 U5 Z基本理解正确。
3 P+ G `0 L, [4 ~& A" }5 T条形码只用于识别屏幕下方黑色背景的字幕。
( D4 n+ ~" e7 y" }2 N) I' P注意图片字库有多个,就是说有多个tga.
( \$ r/ X1 y- V7 ?) N" O6 i: j- f6 v. |6 O2 ]! d% _
由于图片字库可以自己定义每个字符的宽高,我想定义2个宽高都是1个像素的字符。 8 F$ z4 W: H |* K; K4 ]+ x
一个是有色点,一个是透明点。显示出来就是一个像素级的条形码。这个能理解吧。
: M4 b3 f; @5 L0 O9 ]9 C2 S( J0 R, Z7 x6 U1 C* P* o1 E
3、修改文字显示的位置,尽量让每个场景的文字都显示在同一个地方。 , M' R2 o2 ~! T& C
理解正确 / Q/ }. {' q% `4 N- f( C! Z
# V5 G9 L: R/ X& S9 K/ J
7 F" V, r% {/ ] P0 h* g: e4、另外运行一个程序,动态监测屏幕,发现类似条码的部分就去比照对码表,符合的就用DirectDraw技术将字幕覆盖原画面。 ( k- n* a; F( R$ z4 f
理解正确
4 V" Y/ d- P& S# T( X/ u这个游戏用的是dx9,不是DirectDraw。 2 x$ R/ b g! i% ]
dx9 proxy dll技术你可以再看看我发的帖子。 9 Z4 R, s% X9 U) ?
! A2 l! g6 p5 K3 O, G基于我上述的理解,我有几点不明白的地方:
3 W# s9 `, N0 y5 d& j1、方块的显示用什么字符呢?
" y# {. I4 T' d& d, Z2 C- q这个上面解释了
: F3 p: r) j* M( P4 X+ |5 n+ f% Q1 ]
2、如果单纯是方块和空格的变化,那跟二进制差不多,需要的位数就会很长才能满足需要;
; u4 c d% _$ X: e不错,要12-13 位,不过是像素级的,实际上很短。 ) A6 }# H f3 F# c8 J
就算比较长,我的字幕写上去之前,会先画个黑色矩形上去覆盖掉。
% s/ W$ p% S8 D+ @1 T/ L所以不会有问题。 ' K: V9 w, O+ d/ l2 n B( R
8 E% c6 o" U9 A3、关于像素级二维码,我没看明白。怎么生成? - P* J0 `; W! D
上面的都理解的话这个也不难。 / }+ ?+ R5 H7 U, _
道理和条形码类似,不过二维码和条形码用的不是同一个tga。
) k8 W! n$ E9 J8 D; j5 W二维码对应屏幕中央字幕。
: _9 _( i# ^9 s4 g% J/ R+ L7 S条形码对应屏幕底部字幕。
- ?6 s0 i) Z& |4 `
( ?/ b, O! H9 [0 ~! A! U二维码是一个3x3 像素级的小块,这样面积最小,要知道,在屏幕中央字幕显示的时候。
7 Q) I ]0 H: M0 A由于有游戏背景,所以不能先画一个黑色矩形上去,所以要求二维码的面积足够小。 & ]8 n; D; V" D4 P
: o0 T1 P1 P/ K5 N+ E5 z二维码 是一个ID 对应一个ASCII 码,再对应1个3x3 像素级的小块
( J4 [( j# h3 U( ~1 K5 f/ r; V条形码 是一个ID 对应 12-13 个ASCII 码 再对应 12-13 个1x1 像素级的小块 , E2 X9 N1 x( ?) s8 H
, G, ]* s9 Z+ }" _# a
明白了吗? |