Project1

标题: 我置入了16x16的汉字贴图 如何直接根据脚本内容表达 [打印本页]

作者: xsin    时间: 2021-10-18 17:01
标题: 我置入了16x16的汉字贴图 如何直接根据脚本内容表达
本帖最后由 xsin 于 2021-10-18 23:51 编辑

比如我放入了 一.png

之前定义是
def convert_special_characters mozi
    mozi.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
    mozi.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
    mozi.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
    mozi.gsub!(/\\I\[([0-9]+)\]/i) { $data_items[$1.to_i].name }
    mozi.gsub!(/\\C\[([0-9]+)\]/i) { "\x01[#{$1}]" }
    mozi.gsub!(/\\G/)              { "\x02" }
    mozi.gsub!(/\\\./)             { "\x03" }
    mozi.gsub!(/\\\|/)             { "\x04" }
    mozi.gsub!(/\\!/)              { "\x05" }
    mozi.gsub!(/\\>/)              { "\x06" }
    mozi.gsub!(/\\</)              { "\x07" }
    mozi.gsub!(/\\\^/)             { "\x08" }
    mozi.gsub!(/\\\\/)             { "\\" }
    #mozi.gsub!(/\\SNM\[([0-9]+)\]/i) { $data_items[$1.to_i].base_damage }
    #mozi.gsub!(/\\SNA\[([0-9]+)\]/i) { $cha_skill_mozi_set[$1.to_i] }
    return mozi
  end

---------------------------
我想使用通配符
比如    mozi = $data_items[@@possession_card_id[x]].name.to_s
         output_mozi mozi
         rect = Rect.new(16*0,16*0, 16*mozi.split(//u).size,24)

在这里 我的item name 是汉字  比如说一二三三   我想询问如何使用通配符 直接搜索相应的png 然后输出
换种说法  我需要他读取 “”一二三三 “”以后  在我的图片库里 找出   一.png 二.png 三的.png的内容         (直接显示是不支持的  不是字体的问题  先不管为啥)
然后 把这个item name用 这四个png的方式显示出来

目前  我想显示一个图片是可以的 比如
    picture = Cache.picture("一")
end                        #就是这个PNG文件    这样可以显示出“一”     

但我有很多字  我想用图片表达出来  比如 一二三    即显示 一.png 二.png 三的.png的内容  看上去是 一二三   请问如何修改
      
  最终我调取的时候 是用这样的写法  想问的就是如何去通配这个mozi内的文字到png
      rect = Rect.new(16*mozi_x,16*mozi_y, 16,16)
      $tec_mozi.blt(16*x, 8,picture,rect)
作者: xsin    时间: 2021-10-18 17:03

作者: xsin    时间: 2021-11-24 10:22
已经解决
作者: xsin    时间: 2021-12-8 12:37
解决方法 依然用的是传统的子模法




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1