设为首页收藏本站官方微博

【汉化任务简报】#30 疾速天龙 字模置换程序

[复制链接]
查看: 2988|回复: 18
打印 上一主题 下一主题

【汉化任务简报】#30 疾速天龙 字模置换程序

跳转到指定楼层
楼主
发表于 2009-6-5 20:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

【汉化任务简报】#30 疾速天龙 字模置换程序

疾速天龙是一个可以用scummvm模拟器模拟的游戏  A' k7 Y- L, q
但是在导入文本的时候,我们发现一些特定的文字无法被导入到文本中。7 W6 |* H/ ^0 }! F

0 Y; u6 Z# W) l  g我们采用修改字体文件中字形的方法,当我们需要输出文字A的时候,我们在文本中导入的是文字B,但是我们把文字B的样子修改为A。这样我们就能输出A了。1 J6 `/ ?! J6 i# j1 o5 B% j. w1 E
6 M$ d! {; X3 x! t
字体文件在以下的帖子中,文件名是chinese_gb16x12.rar
7 q4 Y9 a% e, r4 ]' S& Ihttps://www.chinaavg.com/read.php?tid=16790
; D# h- p; {' V
' |6 U. c) [/ p; I+ H+ V字体是16X12,所以每个字模占24个字节。
. N4 W& u' l. R7 ]) T5 u( D/ YGB索引代码如下; `% K5 w3 V1 E: f  |& I
idx为GB232编码+ N9 P/ l& A! w, }9 g$ x
idx = ((idx % 256) - 0xa1)* 94  + ((idx / 256) - 0xa1);
% Y  `! b, m+ s$ h3 o, H" ^- `1 i+ G
另外有一个要转换的文字的文件
0 V" M4 h2 v* k- M每行2个字,就是把前一个字的字模样子转换为后一个字的字模样子的意思。  k" P2 U* i0 ]" x9 T- E" `( Q1 i( @
有若干行,循环即可。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2009-6-5 23:53 | 只看该作者
这一句话没看懂:
$ U. C0 [( e" t我们采用修改字体文件中字形的方法,当我们需要输出文字A的时候,我们在文本中导入的是文字B,但是我们把文字B的样子修改为A。这样我们就能输出A了。6 M( N: A& ^. z1 s4 \
& c) k2 {" m5 A6 ~, j& ^
能不能举个例子?5 X2 k' F1 x- J8 Y
: Y5 Z9 M$ o3 r4 }( y
还有这个“每行2个字,就是把前一个字的字模样子转换为后一个字的字模样子的意思。”,也请举个例子。
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2009-6-6 11:29 | 只看该作者
你可以先看一下下面这2个帖子.$ }2 y' r2 [8 L
https://www.chinaavg.com/read.php?tid=166103 ^7 J0 c  d: `7 R
https://www.chinaavg.com/read.php?tid=17017
! d! i  i: t: u5 U, w, @* G) g& y. j5 V2 @$ g
你可以用这个工具先查看一下16X12字库,有个直观的概念。
* j8 ~+ h* [1 [0 d5 k; p) I
4 V5 d5 p' c, @- W我可以给你举个例子。不过只能用文字描述。1 Y; W( i& e4 ]5 T
字体文件中每24个字节保存了一个汉字的字模,一个挨一个连续存放。. O: M; x0 v8 |7 Z) ^7 x; T
根据汉字的编码找到该汉字字模的偏移量的公式我写了,是一下这个公式。
1 q. T; @  s: ?7 sidx = ((idx % 256) - 0xa1)* 94  + ((idx / 256) - 0xa1); : L+ C! R* i: D. e2 M! Y+ J& m0 P
不放心的话,可以找个汉字,然后找到它的字模的偏移量,然后切出24个字节,再用这个工具看一下。4 _% I$ i4 X- U2 `6 X0 H& }1 Q
0 J5 F" ^! h) S# _/ m9 V1 q0 ?
好,接下去说再解释一下这个任务。8 }! I  G% E2 S' m# {& e
原本16X12里的字模的样子都是没有重复的,现在我们要做一件事,我们要修改一个汉字的字模,比如说是"你"这个字,我们给它做个变脸手术,让它的样子长得和"我"这个字一样,其实就是找到"我"的字模的位置和"你"的字模的位置,把"我"的字模覆盖掉"你"的字模。  K% B2 s8 q- U8 t
' x3 h7 Q, v& u# N9 k. ~# S7 R9 c6 ?
我们要求修改好多对"你"和"我",这个就在一个文本文件里定义,怎么定义其实是随便的。
回复 支持 反对

使用道具 举报

sspking 该用户已被删除
地板
发表于 2009-6-6 12:53 | 只看该作者
不会算偏移量啊~  如方说‘新’字,GB码是 C2D0
: x/ R4 Q* B6 Y; M9 f# K2 s4 F然后 idx = ((idx % 256) - 0xa1)* 94  + ((idx / 256) - 0xa1)( E4 T  D$ V& ~7 W
我用VB ,那么就是a = ((a Mod 256) - &HA1) * 94 + ((a / 256) - &HA1)
- X& f. t* L- K- W1 B" S得到 FFFFAD4E   这肯定是错了~
9 ^7 b! |$ f9 b3 P$ D到底是哪里算错了?
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2009-6-6 13:07 | 只看该作者
算偏移量是比较费脑子的,我记得好像高位低位要换一下。
) d& |, g- F/ |' q等我发现你哪里算错再告诉你。
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2009-6-6 13:43 | 只看该作者
引用第3楼sspking于2009-06-06 12:53发表的  :9 Q2 I  [0 M" \/ {
不会算偏移量啊~  如方说‘新’字,GB码是 C2D0
% B" P* N8 C  E( d( @然后 idx = ((idx % 256) - 0xa1)* 94  + ((idx / 256) - 0xa1)2 H' a9 K( D  K5 ~
我用VB ,那么就是a = ((a Mod 256) - &HA1) * 94 + ((a / 256) - &HA1)/ X* j$ U& P! I1 U  L3 |1 w
得到 FFFFAD4E   这肯定是错了~" q, d6 h7 T1 Y* F0 c
到底是哪里算错了?

( x- ~& ^$ ^7 j; e这个索引是指这个汉字在字库中是第几个,所以你还要考虑每个汉字占用的字节数24,才能正确算出偏移量。
7 ?& t  I* F9 j! G0 \
0 }$ P5 m+ C7 t. C) `, U" o, a+ c放上一个工具,可以看16X16的字库的偏移量,索引的计算方式相同。8 s  s, ^9 Y7 \
不同的只是一个汉字占用32个字节。
5 C9 h5 V* _' n7 |你可以先学着算16X16的字库的偏移量,然后和这个工具对照。1 l1 }2 G9 f2 {' c, J
然后就能算16X12的了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

7#
发表于 2009-6-6 14:31 | 只看该作者
引用第3楼sspking于2009-06-06 12:53发表的  :
4 ?. L& ?6 X$ Q. t1 v8 y& f2 _不会算偏移量啊~  如方说‘新’字,GB码是 C2D0
) [& o' E2 y! E然后 idx = ((idx % 256) - 0xa1)* 94  + ((idx / 256) - 0xa1)
& O5 @" M" i0 e% O& k我用VB ,那么就是a = ((a Mod 256) - &HA1) * 94 + ((a / 256) - &HA1)0 n9 i- |) A. e
得到 FFFFAD4E   这肯定是错了~
* i6 T6 j2 G; j$ G7 a1 [到底是哪里算错了?
呵呵...补码
回复 支持 反对

使用道具 举报

8#
发表于 2009-6-6 14:32 | 只看该作者
http://promiseforever.com/200904 ... rt-for-chinese.html
- e+ I( r% M( v0 ^6 {% H6 ]6 w! {1 v1 q5 ^* Q
似乎不是很早前就做了么...
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2009-6-6 14:33 | 只看该作者
引用第6楼firendless于2009-06-06 14:31发表的  :
# I$ E" E7 V# z) U
; i# p- j/ R4 }" x. g7 I呵呵...补码
) b; C7 O9 h5 Q) v+ y3 b
你说详细一些。应该怎么样算才对。
回复 支持 反对

使用道具 举报

10#
发表于 2009-6-6 14:36 | 只看该作者
考完试翻翻以前写的代码..忘记了...补码似乎是C入门的时候的一个概念...007老大不会不晓得的吧...
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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