设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1841|回复: 0
打印 上一主题 下一主题

[已经过期] 求教,希望大家帮忙解决下着游戏的奇葩字库问题吧....

[复制链接]

Lv1.梦旅人

梦石
0
星屑
85
在线时间
224 小时
注册时间
2007-2-19
帖子
169
跳转到指定楼层
1
发表于 2012-6-21 14:46:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sd2011678 于 2012-6-21 17:46 编辑

汉化游戏中,发现游戏根本无法显示中文 一导入中文就脚本出错,研究发现游戏居然用了少见的点阵字库....
于是想修改,但是本人是脚本白痴..所以求大家帮忙

做点阵字库我会,但是这段脚本怎么定义位置呢?或求教高人们指点或者帮忙看下脚本结构看能否改成传统的字库显示,如果帮忙解决问题,我保证汉化一定不会烂尾,且会要显著的位置标明技术援助,谢谢~


附上工程下载:http://115.com/file/dpat8tyq



#==============================================================================
# Keep fonts in system
#==============================================================================

class Game_System
  
  alias :font_sys_init :initialize unless $@
  def initialize
    font_sys_init
    @fonts = {}
    FONTS::DATA.each_key{ |k| @fonts[k] = BitmapFont.new(k) }
  end
  
  def font(f)
    return @fonts[f]
  end
  
end

#==============================================================================
# Font Settings
#==============================================================================

module FONTS
   
  if !$rebuild_data
   
    # Load from data files
    DATA = load_data('Data/LS_Fonts.rvdata')
   
  else
   
  DATA = {}
  
  #--------------------------------------------------------------------------
  # * Standard Font
  #--------------------------------------------------------------------------
  std = {}
  std[:gfx] = "fnt_std.png"
  std[:cell] = [30,30]
  std[:start] = [3,3]
  std[:offset] = [0,0]
  std[:spacing] = [-1,5,27]
  std[:modkern] = 2
  std[:height] = 22
  std[:modwidth] = 1
  std[:widths] = [15,12,13,13,10,9,14,12,4,7,11,9,18,14,15,11,17,12,12,13,14,15,
                  22,13,13,12,10,12,10,11,11,9,12,11,4,7,11,4,18,11,12,12,11,8,
                  9,9,11,12,18,11,13,9,13,10,11,11,13,11,12,12,13,12,4,11,7,18,
                  4,6,6,5,6,6]

  DATA['std'] = std
  
  #--------------------------------------------------------------------------
  # * Recolors
  #--------------------------------------------------------------------------
  ['green','red','blue','shdw'].each{ |f|
    stdc = {}
    stdc[:gfx] = "fnt_"+f+".png"
    stdc[:cell] = std[:cell]
    stdc[:start] = std[:start]
    stdc[:offset] = std[:offset]
    stdc[:spacing] = std[:spacing]
    stdc[:modkern] = std[:modkern]
    stdc[:height] = std[:height]
    stdc[:modwidth] = std[:modwidth]
    stdc[:widths] = std[:widths]   
    DATA[f] = stdc
  }
         
  #--------------------------------------------------------------------------
  # * Glows for standard font
  #--------------------------------------------------------------------------
  ['red','yellow','green','purp','blue','black'].each{ |f|
    glow = {}
    glow[:gfx] = "fnt_std_"+f+".png"
    glow[:cell] = [30,30]
    glow[:start] = [0,0]
    glow[:offset] = [3,3]
    glow[:spacing] = [-4,5,27]
    glow[:modkern] = std[:modkern]
    glow[:height] = std[:height]
    glow[:modwidth] = std[:modwidth]
    glow[:widths] = std[:widths]   
    DATA['std_'+f] = glow
  }
  
  ['green'].each{ |f|
    glow = {}
    glow[:gfx] = "fnt_green_green.png"
    glow[:cell] = [30,30]
    glow[:start] = [0,0]
    glow[:offset] = [3,3]
    glow[:spacing] = [-4,5,27]
    glow[:modkern] = std[:modkern]
    glow[:height] = std[:height]
    glow[:modwidth] = std[:modwidth]
    glow[:widths] = std[:widths]   
    DATA['green_green'] = glow
  }

  #--------------------------------------------------------------------------
  # * Big Font
  #--------------------------------------------------------------------------
  big = {}
  big[:gfx] = "fnt_big.png"
  big[:cell] = [60,60]
  big[:start] = [6,6]
  big[:offset] = [0,0]
  big[:spacing] = [-1,10,48]
  big[:modkern] = 6
  big[:height] = 44
  big[:modwidth] = 2
  big[:widths] = [15,12,13,13,10,9,14,12,4,7,11,9,18,14,15,11,17,12,12,13,14,15,
                  22,13,13,12,10,12,10,11,11,9,12,11,4,7,11,4,18,11,12,12,11,8,
                  9,9,11,12,18,11,13,9,13,10,11,11,13,11,12,12,13,12,4,11,11,18,
                  4,6,6,5,6,6]

  DATA['big'] = big
  
  #--------------------------------------------------------------------------
  # * Big Glows
  #--------------------------------------------------------------------------
['red','yellow','green','purp','blue','black'].each{ |f|
    glow = {}
    glow[:gfx] = "fnt_big_"+f+".png"
    glow[:cell] = [60,60]
    glow[:start] = [0,0]
    glow[:offset] = [6,6]
    glow[:spacing] = big[:spacing]
    glow[:modkern] = big[:modkern]
    glow[:height] = big[:height]
    glow[:modwidth] = big[:modwidth]
    glow[:widths] = big[:widths]   
    DATA['big_'+f] = glow
  }
  
  #--------------------------------------------------------------------------
  # * Mini Font
  #--------------------------------------------------------------------------
  mini = {}
  mini[:gfx] = "fnt_mini.png"
  mini[:cell] = [15,15]
  mini[:start] = [1,1]
  mini[:offset] = [0,0]
  mini[:spacing] = [0,3,15]
  mini[:modkern] = 1
  mini[:height] = 12
  mini[:modwidth] = 0.5
  mini[:widths] = [15,12,13,13,10,9,14,12,4,7,11,9,18,14,15,11,17,12,12,13,14,15,
                  22,13,13,12,10,12,10,11,11,9,12,11,4,7,11,4,18,11,12,12,11,8,
                  9,9,11,12,18,11,13,9,13,10,11,11,13,11,12,12,13,12,4,11,11,18,
                  4,6,6,5,6,6]

  DATA['mini'] = mini
  
  #--------------------------------------------------------------------------
  # * Namebox Font
  #--------------------------------------------------------------------------
  face = {}
  face[:gfx] = "fnt_face.png"
  face[:cell] = [30,30]
  face[:start] = [3,3]
  face[:offset] = [0,0]
  face[:spacing] = [-1,5,27]
  face[:modkern] = 2
  face[:height] = 22
  face[:modwidth] = 1
  face[:widths] = [11,9,10,10,8,7,11,10,3,5,9,7,14,10,12,9,13,9,9,10,10,11,16,
                   10,9,9,8,9,8,9,8,7,9,8,3,5,8,3,13,8,10,9,9,6,7,7,8,9,13,9,
                   9,7,10,8,8,9,10,9,9,9,9,9,3,8,9,13,4,4,4,3,5,4]

  DATA['face'] = face
  
  #--------------------------------------------------------------------------
  # * Title Font
  #--------------------------------------------------------------------------
  title = {}
  title[:gfx] = "fnt_title.png"
  title[:cell] = [37.5,37.5]
  title[:start] = [4,4]
  title[:offset] = [0,0]
  title[:spacing] = [0,7,35]
  title[:modkern] = 1
  title[:height] = 30
  title[:modwidth] = 1.25
  title[:widths] = [15,12,13,13,10,9,14,12,4,7,11,9,18,14,15,11,17,12,12,13,14,15,
                  22,13,13,12,10,12,10,11,11,9,12,11,4,7,11,4,18,11,12,12,11,8,
                  9,9,11,12,18,11,13,9,13,10,11,11,13,11,12,12,13,12,4,11,11,18,
                  4,6,6,5,6,6]

  DATA['title'] = title
  
  #save_data(DATA,'Data/LS_Fonts.rvdata')
  
end
  
  #--------------------------------------------------------------------------
  # * Prep Kernings
  #--------------------------------------------------------------------------
  KERNING = []
   
  bigs = ['T','V','W','X','Y']
  smalls = ('a'..'z').to_a
  smalls = smalls - ['h','j','k','l']
  
  bigs.each { |b|
    smalls.each{ |s|
     KERNING.push(b+s)
    }  
  }
  
  kplus = ['ys','yo','yt']
  KERNING = KERNING + kplus

end




点评

不去贵宾区问问吗?  发表于 2012-7-8 00:37
好久没有回来看了
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-24 07:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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