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

Project1

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

[已经过期] 怎样让字体能够自动替换?

[复制链接]

Lv5.捕梦者

梦石
10
星屑
39587
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

跳转到指定楼层
1
发表于 2015-5-25 18:42:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

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

x
问题如图所示:

怎样让这些“□”替换成其他字体下的日文字呢?
用头画头像,用脚写脚本

Lv4.逐梦者

梦石
3
星屑
3605
在线时间
2492 小时
注册时间
2014-10-5
帖子
1768

开拓者剧作品鉴家

2
发表于 2015-5-25 19:27:38 | 只看该作者
找一个日文字体粘贴进去(但是中文还有木有就不清楚了)

点评

但是这个要怎么操作呢?我不懂脚本。  发表于 2015-5-25 19:47
请参考中英双字体脚本,把英文字符替换为所有片假字  发表于 2015-5-25 19:45
不是这个意思……我是希望中文能够用一种字体,日文能够自动替换成另一种……  发表于 2015-5-25 19:40
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
3605
在线时间
2492 小时
注册时间
2014-10-5
帖子
1768

开拓者剧作品鉴家

3
发表于 2015-5-25 19:50:32 | 只看该作者
本帖最后由 长弓巡洋集团 于 2015-5-25 19:53 编辑

RUBY 代码复制
  1. $_PS0 = {} if $_PS0 == nil  
  2. $_PS0["Draw_Text_DF"] = 20120127.2
  3. module PS0
  4.   module Draw_Text_DF
  5.     DO_PRE_CHECK = true
  6.     Font.default_name = "simhei"
  7.     ENG_FONT = "calibri"#(变为日文字体)
  8.     DO_CHANGE = 0
  9.     DRAW_TYPE = 0
  10.     REG1 = "0-9A-Za-z "  #(在这行写入需要的片假名)               
  11.     REG2 = ";:?!@#%^&*(){}[]=-+_/|,.<>" #(在这行写入需要的平假名)   
  12.     REG3 = "\"\'\$\\"  #(在这行写入需要的特殊符号)   
  13.     REG = /[#{REG1 + (REG2+REG3).gsub!(/./) { "\\" + $& }}]/
  14.   end
  15. end
  16. class Bitmap
  17.   alias old_draw_text draw_text
  18.   def draw_text(*args)
  19.    if self.font.name != Font.default_name && PS0::Draw_Text_DF::DO_CHANGE == 1
  20.     old_draw_text(*args)
  21.   else
  22.      last_font_name = self.font.name
  23.      if args[0].is_a?(Rect)
  24.      rect, str, align = args[0..2]
  25.      x, y, width, height = rect.x, rect.y, rect.width, rect.height
  26.     else
  27.       x, y, width, height, str, align = args[0..5]
  28.     end
  29.     str = str.to_s
  30.     align = 0 if align.nil?
  31.     if PS0::Draw_Text_DF::DO_PRE_CHECK == true
  32.       if str.scan(PS0::Draw_Text_DF::REG).size == 0
  33.         old_draw_text(*args)
  34.       elsif str.scan(PS0::Draw_Text_DF::REG).size == str.size
  35.         change_to_eng_font
  36.         old_draw_text(*args)
  37.       else
  38.         case PS0::Draw_Text_DF::DRAW_TYPE
  39.         when 0 ; draw_text_1by1(x, y, width, height, str, align)
  40.         when 1 ; draw_text_npass(x, y, width, height, str, align)
  41.         end
  42.       end
  43.     else
  44.       case PS0::Draw_Text_DF::DRAW_TYPE
  45.       when 0 ; draw_text_1by1(x, y, width, height, str, align)
  46.       when 1 ; draw_text_npass(x, y, width, height, str, align)
  47.       end
  48.     end
  49.  
  50.     self.font.name = last_font_name
  51.   end
  52.   end
  53.   def draw_text_1by1(x, y, width, height, str, align)
  54.     last_font_name = self.font.name
  55.     ox = 0
  56.     if align == 0
  57.       bx = x
  58.     else
  59.       str1 = str.clone.gsub!(PS0::Draw_Text_DF::REG)            { "" }
  60.       str2 = str.clone.gsub!(/(?!#{PS0::Draw_Text_DF::REG})./)  { "" }
  61.       str_width = text_size(str1).width
  62.       change_to_eng_font
  63.       str_width += text_size(str2).width
  64.       case align
  65.       when 0
  66.         bx = x
  67.       when 1
  68.         bx = x + (width - str_width) / 2
  69.       when 2
  70.         bx = x + (width - str_width)
  71.       end
  72.     end
  73.     str += "\P"
  74.     while (!(c = str.slice!(/./m)).nil?)
  75.       self.font.name = last_font_name
  76.       change_to_eng_font if c.slice(PS0::Draw_Text_DF::REG)
  77.        if c == "\P"
  78.         c = ""
  79.       else
  80.         old_draw_text((bx + ox), y, width, height, c, 0)
  81.         ox += text_size(c).width
  82.       end
  83.     end
  84.   end
  85.   def change_to_eng_font
  86.     self.font.name = PS0::Draw_Text_DF::ENG_FONT
  87.   end
  88. end


看括号里的注释
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39587
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

4
 楼主| 发表于 2015-5-25 20:21:26 | 只看该作者
@长弓巡洋集团

在REG里输入假名以后就变成这样了……为什么呢?

点评

中日通吃的东西,例如微软雅黑和幼圆都不错  发表于 2015-6-18 14:22
好吧……  发表于 2015-5-26 22:30
后面也要改,那就无解了(战力不够)  发表于 2015-5-26 06:53
用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-16 05:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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