Project1

标题: 已经解决 [打印本页]

作者: xsin    时间: 2021-10-16 20:21
标题: 已经解决
本帖最后由 xsin 于 2021-11-24 10:23 编辑

试着汉化游戏但是发现一个问题 可能关于转码或者bitmap

他可能用的是bitmap来拼合某些字符串来表达
用这种复合表达的时候 中文无法显示

目前已知采用了半生的bitmap  Bitmapクラスの拡張 (DLL版)
  Ver 0.1.2.2

它定义过这个
#==============================================================================
# ■ 文字列の調整
#------------------------------------------------------------------------------
#  引数 mozi:調整したい文字
#   戻値 text_list:位置行ごとの配列状態の文字
#==============================================================================
  def text_Adjust mozi = ""
   
    temp_mozi = mozi
    temp_mozi = temp_mozi.gsub("\\n","\n")
    #temp_mozi = convert_special_characters temp_mozi
    text_list=[]
    x = 0
    temp_mozi.each_line {|line| #改行を読み取り複数行表示する
          line.sub!("¥n", "") # ¥は半角に直す
          line = line.gsub("\r", "")#改行コード?が文字化けするので削除
          line = line.gsub("\n", "")#
          line = line.gsub(" ", "")#半角スペースも削除
          text_list[x]=line
          #p text,text_list[x]
          x += 1
         
    }
    #p text_list.size,text_list
    return text_list
  end
end




比如表示道具的时候  mozi表示的地方的地方就完全不能显示汉字  所有我注掉了  但是这样的话就无法在道具栏说明里显示某些变量  比如 当前  活武器经验之类的

比如
         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)
其中中文就无法显示  但日文和数字可以 但也不是我指定的字体  只有   text = ":" + $game_party.item_number($data_items[@@possession_card_id[x]]).to_s  这样的才可以直接显示中文(而且是我设置的字体)
其他各脚本都看过了 没有找到字体
有easyconv 不知道和这个有没有关系

  #カードアイコン表示
    picture = Cache.picture("顔カード")
    rect = put_icon $data_items[@@possession_card_id[@@cursorstatex + 1 + @@cursorstatey * Possession_Card_Column].to_i].id
    @explanation_window.contents.blt(8,0,picture,rect)
    #説明表示
    text = $data_items[@@possession_card_id[@@cursorstatex + 1 + @@cursorstatey * Possession_Card_Column].to_i].note
    y = 0
    text.each_line {|line| #改行を読み取り複数行表示する
      line.sub!("¥n", "") # ¥は半角に直す
      line = line.gsub("\r", "")#改行コード?が文字化けするので削除
      line = line.gsub("\n", "")#
      mozi = line
      output_mozi mozi
      rect = Rect.new(16*0,16*0, 16*mozi.split(//u).size,24)
      @explanation_window.contents.blt(112, y*24, $tec_mozi,rect)
      #@explanation_window.contents.draw_text(112, y, 370, 40, line)
      y += 1#24
      }

==========================


# ● 所持カード表示
  #--------------------------------------------------------------------------  
  def output_possession_card
    @put_card_kyousei_run = false #強制出力フラグを元に戻す
    y = 0

    #表示
    possession_card = 0
   
    #@put_area_y = 0

    #p @@cursorstatey, @put_area_y,@put_card_strat_x
    #p @put_card_strat_x,@temp_possession_card_num,@@possession_card_id.size
    #p @put_card_strat_x,@temp_possession_card_num,@@possession_card_id
    for x in @put_card_strat_x..@@possession_card_id.size - 1
        #p x
        #カード名
       # @possession_card_window.contents.draw_text(possession_card*Possession_Cardx-y*600, Possession_Cardy*y, 110, 20, @@possession_card_id[x])
        text = $data_items[@@possession_card_id[x]].name.to_s
        @possession_card_window.contents.draw_text(16+possession_card*Possession_Cardx-y*600, Possession_Cardy*y, 110, 20, text)
        #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)
       # @possession_card_window.contents.blt(18+possession_card*Possession_Cardx-y*600, Possession_Cardy*y-2,$tec_mozi,rect)
        #カード数
      text = ":" + $game_party.item_number($data_items[@@possession_card_id[x]]).to_s
       @possession_card_window.contents.draw_text(125+possession_card*Possession_Cardx-y*600, Possession_Cardy*y, 48, 20, text)
        #カード二桁持てるか
        if $game_switches[72] == true
          mozi = "        :"
          mozi += " " if $game_party.item_number($data_items[@@possession_card_id[x]]).to_s.size == 1
        else
         mozi = "         :"
        end
        
        mozi += $game_party.item_number($data_items[@@possession_card_id[x]]).to_s
        output_mozi mozi
       rect = Rect.new(16*0,16*0, 16*mozi.split(//u).size,1)
        @possession_card_window.contents.blt(18+possession_card*Possession_Cardx-y*600, Possession_Cardy*y-2,$tec_mozi,rect)
        possession_card += 1
         
        if possession_card != 0 && possession_card % Possession_Card_Column == 0
          y += 1
        end
        
        break if (@put_card_strat_x+Possession_Card_Row*Possession_Card_Column - 1) <= x
    end




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