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

Project1

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

[已经过期] 关于一个日本的名字输入扩张脚本的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
43 小时
注册时间
2010-9-20
帖子
46
跳转到指定楼层
1
发表于 2010-11-21 20:05:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 qiji19980124 于 2010-11-21 20:07 编辑

=begin
●このスクリプトを導入するにあたって
この注釈内の項目を書き換える必要があります(行数は初期状態でのもの、VXは体験版での確認)

"name_actor_id" を、"id" に書き換えます。
(XP)・Game_Temp の 39行目、88行目。
    ・Interpreter 6 の108行目。
(VX)・Game_Temp の 20行目、39行目。
    ・Game_Interpreter の 1352行目。

Scene_Map の197行目(XP)、221行目(VX)を以下のように変更します。
$scene = Scene_Name_ex.new                     <= 変更
$scene.set($data_actors[$game_temp.id])        <= 追加

Scene_Save(VXの場合はScene_File)の最後(一連のMarshal.dumpの後)に以下の文を追加します。
    Marshal.dump($data_actors, file)
    Marshal.dump($data_classes, file)
    Marshal.dump($data_skills, file)
    Marshal.dump($data_items, file)
    Marshal.dump($data_weapons, file)
    Marshal.dump($data_armors, file)
    Marshal.dump($data_enemies, file)

Scene_Load(VXの場合はScene_File)の最後(一連のMarshal.loadの後)に以下の文を追加します。
    $data_actors        = Marshal.load(file)
    $data_classes       = Marshal.load(file)
    $data_skills        = Marshal.load(file)
    $data_items         = Marshal.load(file)
    $data_weapons       = Marshal.load(file)
    $data_armors        = Marshal.load(file)
    $data_enemies       = Marshal.load(file)

●このスクリプトについてのバグ報告・質問・要望などはこちらへ
[email protected]

●以降、スクリプト
=end
#==============================================================================
# ■ Scene_Name_ex
#------------------------------------------------------------------------------
#  名前入力画面の処理を行うクラスです。
#  デフォルトと比べて、以下の機能が追加されています。
#  ☆ アルファベット、記号、漢字、半角文字の追加
#  ☆ 「最初の名前に戻す」機能追加
#==============================================================================

class Scene_Name_ex
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  def main
    $half_flag = false
    # ウィンドウを作成
    @edit_window = Window_NameEdit_ex.new($game_variables[200],
      $game_temp.name_max_char)
    @input_window = Window_NameInput_ex.new
    # トランジション実行
    Graphics.transition
    # メインループ
    loop do
      # ゲーム画面を更新
      Graphics.update
      # 入力情報を更新
      Input.update
      # フレーム更新
      update
      # 画面が切り替わったらループを中断
      if $scene != self
        break
      end
    end
    # トランジション準備
    Graphics.freeze
    # ウィンドウを解放
    @edit_window.dispose
    @input_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 名前を変えるオブジェクトのセット
  #--------------------------------------------------------------------------
  def set(obj)
    @obj = obj
    $game_variables[200] = obj.name
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # ウィンドウを更新
    @edit_window.update
    @input_window.update
    # B ボタンが押された場合
    if Input.repeat?(Input::B)
      # カーソル位置が 0 の場合
      if @edit_window.index == 0
        return
      end
      # キャンセル SE を演奏
      $game_system.se_play($data_system.cancel_se)
      # 文字を削除
      @edit_window.back
      return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      case @input_window.getindex
      when 0 .. 299
        # カーソル位置が最大の場合
        if byte_length(@edit_window.name) >= $game_temp.name_max_char * 2 -
          ($half_flag ? 0 : 1) and
          @input_window.getindex < 300
          # ブザー SE を演奏
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # 決定 SE を演奏
        $game_system.se_play($data_system.decision_se)
        #漢字入力モードの場合
        if @input_window.getpage == 5
          @input_window.setpage(@input_window.getindex + 6)
          @input_window.refresh
        else
          # 文字を追加
          @edit_window.add(@input_window.character)
        end
      when 300..305 # ひらがな~漢字
        # 決定 SE を演奏
        $game_system.se_play($data_system.decision_se)
        if @input_window.getindex == 304
          $half_flag = true
          @edit_window.refresh
        else
          $half_flag = false
          @edit_window.refresh
        end
        # フラグ:300を引いた値をセット
        @input_window.setpage(@input_window.getindex - 300)
        @input_window.refresh
        return
      when 306 # 戻す
        # 決定 SE を演奏
        $game_system.se_play($data_system.decision_se)
        @edit_window.restore_default
      when 307 # 決定
        # 名前が空の場合
        if @edit_window.name == ""
          # デフォルトの名前に戻す
          @edit_window.restore_default
          # 名前が空の場合
          if @edit_window.name == ""
            # ブザー SE を演奏
            $game_system.se_play($data_system.buzzer_se)
            return
          end
          # 決定 SE を演奏
          $game_system.se_play($data_system.decision_se)
          return
        end
        # 変数No.200に反映
        $game_variables[200] = @edit_window.name
        # セットされた箇所への名前の反映
        # それ以外(パスワード入力とか?)で入力するのみの場合はスルー
        if @obj.instance_of?(RPG::Actor)
          $data_actors[$game_temp.id].name = $game_variables[200]
          $game_actors[$game_temp.id].name = $data_actors[$game_temp.id].name
        elsif @obj.instance_of?(RPG::Class)
          $data_classes[$game_temp.id].name = $game_variables[200]
        elsif @obj.instance_of?(RPG::Skill)
          $data_skills[$game_temp.id].name = $game_variables[200]
        elsif @obj.instance_of?(RPG::Item)
          $data_items[$game_temp.id].name = $game_variables[200]
        elsif @obj.instance_of?(RPG::Weapon)
          $data_weapons[$game_temp.id].name = $game_variables[200]
        elsif @obj.instance_of?(RPG::Armor)
          $data_armors[$game_temp.id].name = $game_variables[200]
        elsif @obj.instance_of?(RPG::Enemy)
          $data_enemies[$game_temp.id].name = $game_variables[200]
        end
        # 決定 SE を演奏
        $game_system.se_play($data_system.decision_se)
        # マップ画面に切り替え
        $scene = Scene_Map.new
        return
      end
    end
  end
end

#==============================================================================
# ■ Window_NameEdit_ex
#------------------------------------------------------------------------------
#  名前入力画面で、名前を編集するウィンドウです。
#==============================================================================

class Window_NameEdit_ex < Window_Base
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_reader   :name                     # 名前
  attr_reader   :index                    # カーソル位置
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #     max_char : 最大文字数
  #--------------------------------------------------------------------------
  def initialize(name,max_char)
    super(0, 0, 640, 128)
    self.contents = Bitmap.new(width - 32, height - 32)
    @max_char = max_char
    @letters = @max_char * 2
    name_array = (name.to_s).split(//)
    @name = ""
    for i in 0...name_array.size
      @name += name_array
    end
    @default_name = @name
    @index = name_array.size
    refresh
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  # ● デフォルトの名前に戻す
  #--------------------------------------------------------------------------
  def restore_default
    @name = @default_name
    @index = @name.split(//).size
    refresh
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  # ● 文字の追加
  #     character : 追加する文字
  #--------------------------------------------------------------------------
  def add(character)
    if @index < @letters and character != ""
      @name += character
      @index += 1
      refresh
      update_cursor_rect
    end
  end
  #--------------------------------------------------------------------------
  # ● 文字の削除
  #--------------------------------------------------------------------------
  def back
    if @index > 0
      # 一字削除
      name_array = @name.split(//)
      @name = ""
      for i in 0...name_array.size-1
        @name += name_array
      end
      @index -= 1
      refresh
      update_cursor_rect
    end
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    # 名前を描画
    name_array = @name.split(//)
    x = 180
    i = 0
    l = 0
    begin
      c = name_array[l]
      if c == nil
        if $half_flag
          c = "_"
        else
          if i == @letters - 1
            break
          else
            c = "_"
          end
        end
      end
      self.contents.draw_text(x, 32, is_half(c) ? 14 : 28, 32, c, 1)
      if is_half(c)
        x += 14
        i += 1
      else
        x += 28
        i += 2
      end
      l += 1
    end while i < @letters
    update_cursor_rect
    # グラフィックを描画 一応残し
    # draw_actor_graphic(@actor, 320 - @max_char * 14 - 40, 80)
  end
  #--------------------------------------------------------------------------
  # ● カーソルの矩形更新
  #--------------------------------------------------------------------------
  def update_cursor_rect
    name_array = @name.split(//)
    x = 180
    for i in 0...@letters
      c = name_array
      if c == nil
        self.cursor_rect.set(x, 32, $half_flag ? 14 : 28, 32)
        break
      elsif is_half(c)
        x += 14
      else
        x += 28
        i += 1
      end
      self.cursor_rect.set(x, 32, $half_flag ? 14 : 28, 32)
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super()
    self.refresh
    update_cursor_rect
  end
end

#==============================================================================
# ■ Window_NameInput_ex
#------------------------------------------------------------------------------
#  名前入力画面で、文字を選択するウィンドウです。
#==============================================================================

class Window_NameInput_ex < Window_Base
  
  CHARACTER_TABLE =
  [[ #CT[0] ひらがな
    "あ","い","う","え","お","か","き","く","け","こ",
    "さ","し","す","せ","そ","た","ち","つ","て","と",
    "な","に","ぬ","ね","の","は","ひ","ふ","へ","ほ",
    "ま","み","む","め","も","や","ゐ","ゆ","ゑ","よ",
    "ら","り","る","れ","ろ","わ","を","ん","ヴ","ー",
    ""  ,""  ,""  ,""  ,""  ,""  ,""  ,""  ,""  ,""  ,
    "が","ぎ","ぐ","げ","ご","ざ","じ","ず","ぜ","ぞ",
    "だ","ぢ","づ","で","ど","ば","び","ぶ","べ","ぼ",
    "ぱ","ぴ","ぷ","ぺ","ぽ","ぁ","ぃ","ぅ","ぇ","ぉ",
    "ゃ","ゅ","ょ","っ","ゎ","--","--","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--",
  ],
  [ #CT[1] カタカナ
    "ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ",
    "サ","シ","ス","セ","ソ","タ","チ","ツ","テ","ト",
    "ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ",
    "マ","ミ","ム","メ","モ","ヤ","ヰ","ユ","ヱ","ヨ",
    "ラ","リ","ル","レ","ロ","ワ","ヲ","ン","ヴ","ー",
    ""  ,""  ,""  ,""  ,""  ,""  ,""  ,""  ,""  ,""  ,
    "ガ","ギ","グ","ゲ","ゴ","ザ","ジ","ズ","ゼ","ゾ",
    "ダ","ヂ","ヅ","デ","ド","バ","ビ","ブ","ベ","ボ",
    "パ","ピ","プ","ペ","ポ","ァ","ィ","ゥ","ェ","ォ",
    "ャ","ュ","ョ","ッ","ヮ","--","--","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--",
  ],
  [ #CT[2] 英数
    "A","B","C","D","E","F","G","H","I","J",
    "K","L","M","N","O","P","Q","R","S","T",
    "U","V","W","X","Y","Z",""  ,""  ,""  ,""  ,
    ""  ,""  ,""  ,""  ,""  ,""  ,""  ,""  ,""  ,""  ,
    "a","b","c","d","e","f","g","h","i","j",
    "k","l","m","n","o","p","q","r","s","t",
    "u","v","w","x","y","z",""  ,""  ,""  ,""  ,
    ""  ,""  ,""  ,""  ,""  ,""  ,""  ,""  ,""  ,""  ,
    "1","2","3","4","5","6","7","8","9","0",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[3] 記号
    "<",">","(",")","〔","〕","[","]","{","}",
    "〈","〉","《","》","「","」","『","』","【","】",
    "、","。",",",".","・",":",";","?","!"," ",
    "゜","´","`","/","\","~","+","-","×","÷",
    "±","=","∞","♂","♀","℃","¥","$","*","@",
    "☆","★","○","●","◇","◆","□","■","△","▲",
    "▽","▼","※","→","←","↑","↓","⊂","⊃","∀",
    "♪","♯","♭","α","β","γ","δ","ε","ζ","η",
    "θ","ι","κ","λ","μ","ν","ξ","ο","π","ρ",
    "σ","τ","υ","φ","χ","ψ","ω","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--","--",
  ],
  [ #CT[4] 半角
    "ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ",
    "サ","シ","ス","セ","ソ","タ","チ","ツ","テ","ト",
    "ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ",
    "マ","ミ","ム","メ","モ","ヤ"," ","ユ"," ","ヨ",
    "ラ","リ","ル","レ","ロ","ワ","ヲ","ン","゙","゚",
    "ァ","ィ","ゥ","ェ","ォ","ャ","ュ","ョ","ッ","ー",
    "" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,
    "" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,
    "A","B","C","D","E","F","G","H","I","J",
    "K","L","M","N","O","P","Q","R","S","T",
    "U","V","W","X","Y","Z","" ,"" ,"" ,"" ,
    "" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,
    "a","b","c","d","e","f","g","h","i","j",
    "k","l","m","n","o","p","q","r","s","t",
    "u","v","w","x","y","z","" ,"" ,"" ,"" ,
    "" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,"" ,
    "!","\"","#","[        DISCUZ_CODE_0        ]quot;,"%","&","'","(",")","*",
    "+",",","-",".","/",":",";","<","=",">",
    "?","@","[","\\","]","^","_","`","{","|",
    "}","~","「","」","、","・","。","","","",
    "1","2","3","4","5","6","7","8","9","0",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[5] 漢字目次
    "あ","い","う","え","お","か","か","き","き","く",
    "け","こ","こ","さ","し","し","し","し","す","せ",
    "そ","た","ち","つ","て","と","な","に","ぬ","ね",
    "の","は","ひ","ふ","へ","ほ","ま","み","む","め",
    "も","や","ゆ","よ","ら","り","る","れ","ろ","わ",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[6] 漢字(あ)
    "あ","亜","唖","娃","阿","哀","愛","挨","姶","逢",
    "葵","茜","穐","悪","握","渥","旭","葦","芦","鯵",
    "梓","圧","斡","扱","宛","姐","虻","飴","絢","綾",
    "鮎","或","粟","袷","安","庵","按","暗","案","闇",
    "鞍","杏","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--",
  ],
  [ #CT[7] 漢字(い)
    "い","以","伊","位","依","偉","囲","夷","委","威",
    "尉","惟","意","慰","易","椅","為","畏","異","移",
    "維","緯","胃","萎","衣","謂","違","遺","医","井",
    "亥","域","育","郁","磯","一","壱","溢","逸","稲",
    "茨","芋","鰯","允","印","咽","員","因","姻","引",
    "飲","淫","胤","蔭","院","陰","隠","韻","吋","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[8] 漢字(う)
    "う","右","宇","烏","羽","迂","雨","卯","鵜","窺",
    "丑","碓","臼","渦","嘘","唄","欝","蔚","鰻","姥",
    "厩","浦","瓜","閏","噂","云","運","雲","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--","--","--",
  ],
  [ #CT[9] 漢字(え)
    "え","荏","餌","叡","営","嬰","影","映","曳","栄",
    "永","泳","洩","瑛","盈","穎","頴","英","衛","詠",
    "鋭","液","疫","益","駅","悦","謁","越","閲","榎",
    "厭","円","園","堰","奄","宴","延","怨","掩","援",
    "沿","演","炎","焔","煙","燕","猿","縁","艶","苑",
    "薗","遠","鉛","鴛","塩","--","--","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--",
  ],
  [ #CT[10] 漢字(お)
    "お","於","汚","甥","凹","央","奥","往","応","押",
    "旺","横","欧","殴","王","翁","襖","鴬","鴎","黄",
    "岡","沖","荻","億","屋","憶","臆","桶","牡","乙",
    "俺","卸","恩","温","穏","音","--","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--",
  ],
  [ #CT[11] 漢字(か~かく)
    "か","下","化","仮","何","伽","価","佳","加","可",
    "嘉","夏","嫁","家","寡","科","暇","果","架","歌",
    "河","火","珂","禍","禾","稼","箇","花","苛","茄",
    "荷","華","菓","蝦","課","嘩","貨","迦","過","霞",
    "蚊","俄","峨","我","牙","画","臥","芽","蛾","賀",
    "雅","餓","駕","介","会","解","回","塊","壊","廻",
    "快","怪","悔","恢","懐","戒","拐","改","魁","晦",
    "械","海","灰","界","皆","絵","芥","蟹","開","階",
    "貝","凱","劾","外","咳","害","崖","慨","概","涯",
    "碍","蓋","街","該","鎧","骸","浬","馨","蛙","垣",
    "柿","蛎","鈎","劃","嚇","各","廓","拡","撹","格",
    "核","殻","獲","確","穫","覚","角","赫","較","郭",
    "閣","隔","革","学","岳","楽","額","顎","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--","--","--",
  ],
  [ #CT[12] 漢字(かけ~かん)
    "か","掛","笠","樫","叶","椛","樺","鞄","株","兜",
    "竃","蒲","釜","鎌","噛","鴨","栢","茅","萱","粥",
    "刈","苅","瓦","乾","侃","冠","寒","刊","勘","勧",
    "巻","喚","堪","姦","完","官","寛","幹","患","感",
    "慣","憾","換","敢","柑","桓","棺","款","歓","汗",
    "漢","澗","潅","環","甘","監","看","竿","管","簡",
    "緩","缶","翰","肝","艦","莞","観","諌","貫","還",
    "鑑","間","閑","関","陥","韓","館","舘","丸","含",
    "岸","巌","玩","癌","眼","岩","翫","贋","雁","頑",
    "顔","願","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--",
  ],
  [ #CT[13] 漢字(き~きゆ)
    "き","企","伎","危","喜","器","基","奇","嬉","寄",
    "岐","希","幾","忌","揮","机","旗","既","期","棋",
    "棄","機","帰","毅","気","汽","畿","祈","季","稀",
    "紀","徽","規","記","貴","起","軌","輝","飢","騎",
    "鬼","亀","偽","儀","妓","宜","戯","技","擬","欺",
    "犠","疑","祇","義","蟻","誼","議","掬","菊","鞠",
    "吉","吃","喫","桔","橘","詰","砧","杵","黍","却",
    "客","脚","虐","逆","丘","久","仇","休","及","吸",
    "宮","弓","急","救","朽","求","汲","泣","灸","球",
    "究","窮","笈","級","糾","給","旧","牛","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--","--","--",
  ],
  [ #CT[14] 漢字(きよ~きん)
    "き","去","居","巨","拒","拠","挙","渠","虚","許",
    "距","鋸","漁","禦","魚","亨","享","京","供","侠",
    "僑","兇","競","共","凶","協","匡","卿","叫","喬",
    "境","峡","強","彊","怯","恐","恭","挟","教","橋",
    "況","狂","狭","矯","胸","脅","興","蕎","郷","鏡",
    "響","饗","驚","仰","凝","尭","暁","業","局","曲",
    "極","玉","桐","粁","僅","勤","均","巾","錦","斤",
    "欣","欽","琴","禁","禽","筋","緊","芹","菌","衿",
    "襟","謹","近","金","吟","銀","--","--","--","--",
    "--","--","--","--","--","--","--","--","--","--",
    "--","--","--","--","--","--",
  ],
  [ #CT[15] 漢字(く)
   "く","九","倶","句","区","狗","玖","矩","苦","躯",
   "駆","駈","駒","具","愚","虞","喰","空","偶","寓",
   "遇","隅","串","櫛","釧","屑","屈","掘","窟","沓",
   "靴","轡","窪","熊","隈","粂","栗","繰","桑","鍬",
   "勲","君","薫","訓","群","軍","郡","--","--","--",
   "--","--","--","--","--","--","--","--","--","--",
   "--","--","--","--","--","--","--",
  ],
  [ #CT[16] 漢字(け)
   "け","卦","袈","祁","係","傾","刑","兄","啓","圭",
   "珪","型","契","形","径","恵","慶","慧","憩","掲",
   "携","敬","景","桂","渓","畦","稽","系","経","継",
   "繋","罫","茎","荊","蛍","計","詣","警","軽","頚",
   "鶏","芸","迎","鯨","劇","戟","撃","激","隙","桁",
   "傑","欠","決","潔","穴","結","血","訣","月","件",
   "倹","倦","健","兼","券","剣","喧","圏","堅","嫌",
   "建","憲","懸","拳","捲","検","権","牽","犬","献",
   "研","硯","絹","県","肩","見","謙","賢","軒","遣",
   "鍵","険","顕","験","鹸","元","原","厳","幻","弦",
   "減","源","玄","現","絃","舷","言","諺","限","--",
   "--","--","--","--","--","--","--","--","--","--",
   "--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[17] 漢字(こ~こう)
  "こ","乎","個","古","呼","固","姑","孤","己","庫",
  "弧","戸","故","枯","湖","狐","糊","袴","股","胡",
  "菰","虎","誇","跨","鈷","雇","顧","鼓","五","互",
  "伍","午","呉","吾","娯","後","御","悟","梧","檎",
  "瑚","碁","語","誤","護","醐","乞","鯉","交","佼",
  "侯","候","倖","光","公","功","効","勾","厚","口",
  "向","后","喉","坑","垢","好","孔","孝","宏","工",
  "巧","巷","幸","広","庚","康","弘","恒","慌","抗",
  "拘","控","攻","昂","晃","更","杭","校","梗","構",
  "江","洪","浩","港","溝","甲","皇","硬","稿","糠",
  "紅","紘","絞","綱","耕","考","肯","肱","腔","膏",
  "航","荒","行","衡","講","貢","購","郊","酵","鉱",
  "砿","鋼","閤","降","項","香","高","鴻","剛","劫",
  "号","合","壕","拷","濠","豪","轟","麹","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--",
  ],
  [ #CT[18] 漢字(こく~)
  "こ","克","刻","告","国","穀","酷","鵠","黒","獄",
  "漉","腰","甑","忽","惚","骨","狛","込","此","頃",
  "今","困","坤","墾","婚","恨","懇","昏","昆","根",
  "梱","混","痕","紺","艮","魂","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--",
  ],
  [ #CT[19] 漢字(さ)
  "さ","些","佐","叉","唆","嵯","左","差","査","沙",
  "瑳","砂","詐","鎖","裟","坐","座","挫","債","催",
  "再","最","哉","塞","妻","宰","彩","才","採","栽",
  "歳","済","災","采","犀","砕","砦","祭","斎","細",
  "菜","裁","載","際","剤","在","材","罪","財","冴",
  "坂","阪","堺","榊","肴","咲","崎","埼","碕","鷺",
  "作","削","咋","搾","昨","朔","柵","窄","策","索",
  "錯","桜","鮭","笹","匙","冊","刷","察","拶","撮",
  "擦","札","殺","薩","雑","皐","鯖","捌","錆","鮫",
  "皿","晒","三","傘","参","山","惨","撒","散","桟",
  "燦","珊","産","算","纂","蚕","讃","賛","酸","餐",
  "斬","暫","残","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--",
  ],
  [ #CT[20] 漢字(し~しや)
  "し","仕","仔","伺","使","刺","司","史","嗣","四",
  "士","始","姉","姿","子","屍","市","師","志","思",
  "指","支","孜","斯","施","旨","枝","止","死","氏",
  "獅","祉","私","糸","紙","紫","肢","脂","至","視",
  "詞","詩","試","誌","諮","資","賜","雌","飼","歯",
  "事","似","侍","児","字","寺","慈","持","時","次",
  "滋","治","爾","璽","痔","磁","示","而","耳","自",
  "蒔","辞","汐","鹿","式","識","鴫","竺","軸","宍",
  "雫","七","叱","執","失","嫉","室","悉","湿","漆",
  "疾","質","実","蔀","篠","偲","柴","芝","屡","蕊",
  "縞","舎","写","射","捨","赦","斜","煮","社","紗",
  "者","謝","車","遮","蛇","邪","借","勺","尺","杓",
  "灼","爵","酌","釈","錫","若","寂","弱","惹","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[21] 漢字(しゆ~しよ)
  "し","主","取","守","手","朱","殊","狩","珠","種",
  "腫","趣","酒","首","儒","受","呪","寿","授","樹",
  "綬","需","囚","収","周","宗","就","州","修","愁",
  "拾","洲","秀","秋","終","繍","習","臭","舟","蒐",
  "衆","襲","讐","蹴","輯","週","酋","酬","集","醜",
  "什","住","充","十","従","戎","柔","汁","渋","獣",
  "縦","重","銃","叔","夙","宿","淑","祝","縮","粛",
  "塾","熟","出","術","述","俊","峻","春","瞬","竣",
  "舜","駿","准","循","旬","楯","殉","淳","準","潤",
  "盾","純","巡","遵","醇","順","処","初","所","暑",
  "曙","渚","庶","緒","署","書","薯","藷","諸","助",
  "叙","女","序","徐","恕","鋤","除","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--",
  ],
  [ #CT[22] 漢字(しよう)
  "し","傷","償","勝","匠","升","召","哨","商","唱",
  "嘗","奨","妾","娼","宵","将","小","少","尚","庄",
  "床","廠","彰","承","抄","招","掌","捷","昇","昌",
  "昭","晶","松","梢","樟","樵","沼","消","渉","湘",
  "焼","焦","照","症","省","硝","礁","祥","称","章",
  "笑","粧","紹","肖","菖","蒋","蕉","衝","裳","訟",
  "証","詔","詳","象","賞","醤","鉦","鍾","鐘","障",
  "鞘","上","丈","丞","乗","冗","剰","城","場","壌",
  "嬢","常","情","擾","条","杖","浄","状","畳","穣",
  "蒸","譲","醸","錠","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--",
  ],
  [ #CT[23] 漢字(しよく~しん)
  "し","嘱","埴","飾","拭","植","殖","燭","織","職",
  "色","触","食","蝕","辱","尻","伸","信","侵","唇",
  "娠","寝","審","心","慎","振","新","晋","森","榛",
  "浸","深","申","疹","真","神","秦","紳","臣","芯",
  "薪","親","診","身","辛","進","針","震","人","仁",
  "刃","塵","壬","尋","甚","尽","腎","訊","迅","陣",
  "靭","笥","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--",
  ],
  [ #CT[24] 漢字(す)
  "す","諏","須","酢","図","厨","逗","吹","垂","帥",
  "推","水","炊","睡","粋","翠","衰","遂","酔","錐",
  "錘","随","瑞","髄","崇","嵩","数","枢","趨","雛",
  "据","杉","椙","菅","頗","雀","裾","澄","摺","寸",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[25] 漢字(せ)
  "せ","世","瀬","畝","是","凄","制","勢","姓","征",
  "性","成","政","整","星","晴","棲","栖","正","清",
  "牲","生","盛","精","聖","声","製","西","誠","誓",
  "請","逝","醒","青","静","斉","税","脆","隻","席",
  "惜","戚","斥","昔","析","石","積","籍","績","脊",
  "責","赤","跡","蹟","碩","切","拙","接","摂","折",
  "設","窃","節","説","雪","絶","舌","蝉","仙","先",
  "千","占","宣","専","尖","川","戦","扇","撰","栓",
  "栴","泉","浅","洗","染","潜","煎","煽","旋","穿",
  "箭","線","繊","羨","腺","舛","船","薦","詮","賎",
  "践","選","遷","銭","銑","閃","鮮","前","善","漸",
  "然","全","禅","繕","膳","糎","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--",
  ],
  [ #CT[26] 漢字(そ)
  "そ","噌","塑","岨","措","曾","曽","楚","狙","疏",
  "疎","礎","祖","租","粗","素","組","蘇","訴","阻",
  "遡","鼠","僧","創","双","叢","倉","喪","壮","奏",
  "爽","宋","層","匝","惣","想","捜","掃","挿","掻",
  "操","早","曹","巣","槍","槽","漕","燥","争","痩",
  "相","窓","糟","総","綜","聡","草","荘","葬","蒼",
  "藻","装","走","送","遭","鎗","霜","騒","像","増",
  "憎","臓","蔵","贈","造","促","側","則","即","息",
  "捉","束","測","足","速","俗","属","賊","族","続",
  "卒","袖","其","揃","存","孫","尊","損","村","遜",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[27] 漢字(た)
  "た","他","多","太","汰","詑","唾","堕","妥","惰",
  "打","柁","舵","楕","陀","駄","騨","体","堆","対",
  "耐","岱","帯","待","怠","態","戴","替","泰","滞",
  "胎","腿","苔","袋","貸","退","逮","隊","黛","鯛",
  "代","台","大","第","醍","題","鷹","滝","瀧","卓",
  "啄","宅","托","択","拓","沢","濯","琢","託","鐸",
  "濁","諾","茸","凧","蛸","只","叩","但","達","辰",
  "奪","脱","巽","竪","辿","棚","谷","狸","鱈","樽",
  "誰","丹","単","嘆","坦","担","探","旦","歎","淡",
  "湛","炭","短","端","箪","綻","耽","胆","蛋","誕",
  "鍛","団","壇","弾","断","暖","檀","段","男","談",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[28] 漢字(ち)
  "ち","値","知","地","弛","恥","智","池","痴","稚",
  "置","致","蜘","遅","馳","築","畜","竹","筑","蓄",
  "逐","秩","窒","茶","嫡","着","中","仲","宙","忠",
  "抽","昼","柱","注","虫","衷","註","酎","鋳","駐",
  "樗","瀦","猪","苧","著","貯","丁","兆","凋","喋",
  "寵","帖","帳","庁","弔","張","彫","徴","懲","挑",
  "暢","朝","潮","牒","町","眺","聴","脹","腸","蝶",
  "調","諜","超","跳","銚","長","頂","鳥","勅","捗",
  "直","朕","沈","珍","賃","鎮","陳","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--",
  ],
  [ #CT[29] 漢字(つ)
  "つ","津","墜","椎","槌","追","鎚","痛","通","塚",
  "栂","掴","槻","佃","漬","柘","辻","蔦","綴","鍔",
  "椿","潰","坪","壷","嬬","紬","爪","吊","釣","鶴",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[30] 漢字(て)
  "て","亭","低","停","偵","剃","貞","呈","堤","定",
  "帝","底","庭","廷","弟","悌","抵","挺","提","梯",
  "汀","碇","禎","程","締","艇","訂","諦","蹄","逓",
  "邸","鄭","釘","鼎","泥","摘","擢","敵","滴","的",
  "笛","適","鏑","溺","哲","徹","撤","轍","迭","鉄",
  "典","填","天","展","店","添","纏","甜","貼","転",
  "顛","点","伝","殿","澱","田","電","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--",
  ],
  [ #CT[31] 漢字(と)
  "と","兎","吐","堵","塗","妬","屠","徒","斗","杜",
  "渡","登","菟","賭","途","都","鍍","砥","砺","努",
  "度","土","奴","怒","倒","党","冬","凍","刀","唐",
  "塔","塘","套","宕","島","嶋","悼","投","搭","東",
  "桃","梼","棟","盗","淘","湯","涛","灯","燈","当",
  "痘","祷","等","答","筒","糖","統","到","董","蕩",
  "藤","討","謄","豆","踏","逃","透","鐙","陶","頭",
  "騰","闘","働","動","同","堂","導","憧","撞","洞",
  "瞳","童","胴","萄","道","銅","峠","鴇","匿","得",
  "徳","涜","特","督","禿","篤","毒","独","読","栃",
  "橡","凸","突","椴","届","鳶","苫","寅","酉","瀞",
  "噸","屯","惇","敦","沌","豚","遁","頓","呑","曇",
  "鈍","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--",
  ],
  [ #CT[32] 漢字(な)
  "な","奈","那","内","乍","凪","薙","謎","灘","捺",
  "鍋","楢","馴","縄","畷","南","楠","軟","難","汝",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[33] 漢字(に)
  "に","二","尼","弐","迩","匂","賑","肉","虹","廿",
  "日","乳","入","如","尿","韮","任","妊","忍","認",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[34] 漢字(ぬ)
  "ぬ","濡","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--",
  ],
  [ #CT[35] 漢字(ね)
  "ね","禰","祢","寧","葱","猫","熱","年","念","捻",
  "撚","燃","粘","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--",
  ],
  [ #CT[36] 漢字(の)
  "の","乃","廼","之","埜","嚢","悩","濃","納","能",
  "脳","膿","農","覗","蚤","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--",
  ],
  [ #CT[37] 漢字(は)
  "は","巴","把","播","覇","杷","波","派","琶","破",
  "婆","罵","芭","馬","俳","廃","拝","排","敗","杯",
  "盃","牌","背","肺","輩","配","倍","培","媒","梅",
  "楳","煤","狽","買","売","賠","陪","這","蝿","秤",
  "矧","萩","伯","剥","博","拍","柏","泊","白","箔",
  "粕","舶","薄","迫","曝","漠","爆","縛","莫","駁",
  "麦","函","箱","硲","箸","肇","筈","櫨","幡","肌",
  "畑","畠","八","鉢","溌","発","醗","髪","伐","罰",
  "抜","筏","閥","鳩","噺","塙","蛤","隼","伴","判",
  "半","反","叛","帆","搬","斑","板","氾","汎","版",
  "犯","班","畔","繁","般","藩","販","範","釆","煩",
  "頒","飯","挽","晩","番","盤","磐","蕃","蛮","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[38] 漢字(ひ)
  "ひ","匪","卑","否","妃","庇","彼","悲","扉","批",
  "披","斐","比","泌","疲","皮","碑","秘","緋","罷",
  "肥","被","誹","費","避","非","飛","樋","簸","備",
  "尾","微","枇","毘","琵","眉","美","鼻","柊","稗",
  "匹","疋","髭","彦","膝","菱","肘","弼","必","畢",
  "筆","逼","桧","姫","媛","紐","百","謬","俵","彪",
  "標","氷","漂","瓢","票","表","評","豹","廟","描",
  "病","秒","苗","錨","鋲","蒜","蛭","鰭","品","彬",
  "斌","浜","瀕","貧","賓","頻","敏","瓶","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--",
  ],
  [ #CT[39] 漢字(ふ)
  "ふ","不","付","埠","夫","婦","富","冨","布","府",
  "怖","扶","敷","斧","普","浮","父","符","腐","膚",
  "芙","譜","負","賦","赴","阜","附","侮","撫","武",
  "舞","葡","蕪","部","封","楓","風","葺","蕗","伏",
  "副","復","幅","服","福","腹","複","覆","淵","弗",
  "払","沸","仏","物","鮒","分","吻","噴","墳","憤",
  "扮","焚","奮","粉","糞","紛","雰","文","聞","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[40] 漢字(へ)
  "へ","丙","併","兵","塀","幣","平","弊","柄","並",
  "蔽","閉","陛","米","頁","僻","壁","癖","碧","別",
  "瞥","蔑","箆","偏","変","片","篇","編","辺","返",
  "遍","便","勉","娩","弁","鞭","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--",
  ],
  [ #CT[41] 漢字(ほ)
  "ほ","保","舗","鋪","圃","捕","歩","甫","補","輔",
  "穂","募","墓","慕","戊","暮","母","簿","菩","倣",
  "俸","包","呆","報","奉","宝","峰","峯","崩","庖",
  "抱","捧","放","方","朋","法","泡","烹","砲","縫",
  "胞","芳","萌","蓬","蜂","褒","訪","豊","邦","鋒",
  "飽","鳳","鵬","乏","亡","傍","剖","坊","妨","帽",
  "忘","忙","房","暴","望","某","棒","冒","紡","肪",
  "膨","謀","貌","貿","鉾","防","吠","頬","北","僕",
  "卜","墨","撲","朴","牧","睦","穆","釦","勃","没",
  "殆","堀","幌","奔","本","翻","凡","盆","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--",
  ],
  [ #CT[42] 漢字(ま)
  "ま","摩","磨","魔","麻","埋","妹","昧","枚","毎",
  "哩","槙","幕","膜","枕","鮪","柾","鱒","桝","亦",
  "俣","又","抹","末","沫","迄","侭","繭","麿","万",
  "慢","満","漫","蔓","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--",
  ],
  [ #CT[43] 漢字(み)
  "み","味","未","魅","巳","箕","岬","密","蜜","湊",
  "蓑","稔","脈","妙","粍","民","眠","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--",
  ],
  [ #CT[44] 漢字(む)
  "む","務","夢","無","牟","矛","霧","鵡","椋","婿",
  "娘","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--",
  ],
  [ #CT[45] 漢字(め)
  "め","冥","名","命","明","盟","迷","銘","鳴","姪",
  "牝","滅","免","棉","綿","緬","面","麺","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--",
  ],
  [ #CT[46] 漢字(も)
  "も","摸","模","茂","妄","孟","毛","猛","盲","網",
  "耗","蒙","儲","木","黙","目","杢","勿","餅","尤",
  "戻","籾","貰","問","悶","紋","門","匁","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--",
  ],
  [ #CT[47] 漢字(や)
  "や","也","冶","夜","爺","耶","野","弥","矢","厄",
  "役","約","薬","訳","躍","靖","柳","薮","鑓","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[48] 漢字(ゆ)
  "ゆ","愉","愈","油","癒","諭","輸","唯","佑","優",
  "勇","友","宥","幽","悠","憂","揖","有","柚","湧",
  "涌","猶","猷","由","祐","裕","誘","遊","邑","郵",
  "雄","融","夕","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--",
  ],
  [ #CT[49] 漢字(よ)
  "よ","予","余","与","誉","輿","預","傭","幼","妖",
  "容","庸","揚","揺","擁","曜","楊","様","洋","溶",
  "熔","用","窯","羊","耀","葉","蓉","要","謡","踊",
  "遥","陽","養","慾","抑","欲","沃","浴","翌","翼",
  "淀","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--",
  ],
  [ #CT[50] 漢字(ら)
  "ら","羅","螺","裸","来","莱","頼","雷","洛","絡",
  "落","酪","乱","卵","嵐","欄","濫","藍","蘭","覧",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[51] 漢字(り)
  "り","利","吏","履","李","梨","理","璃","痢","裏",
  "裡","里","離","陸","律","率","立","葎","掠","略",
  "劉","流","溜","琉","留","硫","粒","隆","竜","龍",
  "侶","慮","旅","虜","了","亮","僚","両","凌","寮",
  "料","梁","涼","猟","療","瞭","稜","糧","良","諒",
  "遼","量","陵","領","力","緑","倫","厘","林","淋",
  "燐","琳","臨","輪","隣","鱗","麟","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--",
  ],
  [ #CT[52] 漢字(る)
  "る","瑠","塁","涙","累","類","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--",
  ],
  [ #CT[53] 漢字(れ)
  "れ","令","伶","例","冷","励","嶺","怜","玲","礼",
  "苓","鈴","隷","零","霊","麗","齢","暦","歴","列",
  "劣","烈","裂","廉","恋","憐","漣","煉","簾","練",
  "聯","蓮","連","錬","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--",
  ],
  [ #CT[54] 漢字(ろ)
  "ろ","呂","魯","櫓","炉","賂","路","露","労","婁",
  "廊","弄","朗","楼","榔","浪","漏","牢","狼","篭",
  "老","聾","蝋","郎","六","麓","禄","肋","録","論",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  ],
  [ #CT[55] 漢字(わ)
  "わ","倭","和","話","歪","賄","脇","惑","枠","鷲",
  "亙","亘","鰐","詫","藁","蕨","椀","湾","碗","腕",
  "--","--","--","--","--","--","--","--","--","--",
  "--","--","--","--","--","--","--","--","--","--",
  ],
  ]
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 128, 640, 352)
    self.contents = Bitmap.new(width - 32, height - 32)
    @index = 0
    @page = 0
    $half_flag = false
    refresh
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  # ● 文字の取得
  #--------------------------------------------------------------------------
  def character
    return CHARACTER_TABLE[@page][@index].to_s
  end
  #--------------------------------------------------------------------------
  # ● indexの取得
  #--------------------------------------------------------------------------
  def getindex
    return @index
  end
  #--------------------------------------------------------------------------
  # ● pageのセット
  #--------------------------------------------------------------------------
  def setpage(n)
    @page = n
  end
  #--------------------------------------------------------------------------
  # ● pageの取得
  #--------------------------------------------------------------------------
  def getpage
    return @page
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if @page >= 5 # 漢字入力
      self.contents.font.color = system_color
    else  
      self.contents.font.color = normal_color
    end
    i = 0
    until CHARACTER_TABLE[@page] == "--"
      x = 4 + i % ($half_flag ? 40: 20) * ($half_flag ? 15: 29)
      y = i / ($half_flag ? 40: 20) * 32
      self.contents.draw_text(x, y, ($half_flag ? 15: 29), 32,
        CHARACTER_TABLE[@page].to_s, 1)
      if @page >= 6 && i == 0 # 漢字モード目次でなければ通常色に戻す
        self.contents.font.color = normal_color
      end
      i += 1
    end
    # 項目名の表示、現在の選択モードを黄色く表示
    if @page == 0
      self.contents.font.color = Color.new(255, 255, 64, 255)
    else
      self.contents.font.color = normal_color
    end
    self.contents.draw_text(4, 9 * 32, 96, 32, "ひらがな", 1)
    if @page == 1
      self.contents.font.color = Color.new(255, 255, 64, 255)
    else
      self.contents.font.color = normal_color
    end
    self.contents.draw_text(120, 9 * 32, 96, 32, "カタカナ", 1)
    if @page == 2
      self.contents.font.color = Color.new(255, 255, 64, 255)
    else
      self.contents.font.color = normal_color
    end
    self.contents.draw_text(236, 9 * 32, 48, 32, "英数", 1)
    if @page == 3
      self.contents.font.color = Color.new(255, 255, 64, 255)
    else
      self.contents.font.color = normal_color
    end
    self.contents.draw_text(294, 9 * 32, 48, 32, "記号", 1)
    if @page == 4
      self.contents.font.color = Color.new(255, 255, 64, 255)
    else
      self.contents.font.color = normal_color
    end
    self.contents.draw_text(352, 9 * 32, 48, 32, "半角", 1)
    if @page >= 5
      self.contents.font.color = Color.new(255, 255, 64, 255)
    else
      self.contents.font.color = normal_color
    end
    self.contents.draw_text(410, 9 * 32, 48, 32, "漢字", 1)
    self.contents.font.color = normal_color
    self.contents.draw_text(468, 9 * 32, 48, 32, "戻す", 1)
    self.contents.draw_text(526, 9 * 32, 48, 32, "決定", 1)
  end
  #--------------------------------------------------------------------------
  # ● カーソルの矩形更新
  #--------------------------------------------------------------------------
  def update_cursor_rect
    case @index
    when 300 # ひらがな
      self.cursor_rect.set(  4, 9 * 32, 96, 32)
    when 301 # カタカナ
      self.cursor_rect.set(120, 9 * 32, 96, 32)
    when 302 # 英数
      self.cursor_rect.set(236, 9 * 32, 48, 32)
    when 303 # 記号
      self.cursor_rect.set(294, 9 * 32, 48, 32)
    when 304 # 半角
      self.cursor_rect.set(352, 9 * 32, 48, 32)
    when 305 # 戻す
      self.cursor_rect.set(410, 9 * 32, 48, 32)
    when 306 # 漢字
      self.cursor_rect.set(468, 9 * 32, 48, 32)
    when 307 # 決定
      self.cursor_rect.set(526, 9 * 32, 48, 32)
    else # 文字
      x = 4 + @index % ($half_flag ? 40: 20) * ($half_flag ? 15: 29)
      y = @index / ($half_flag ? 40: 20) * 32
      self.cursor_rect.set(x, y, ($half_flag ? 15: 29), 32)
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    # カーソル位置が最下段の場合
    if @index >= 300
      # カーソル下
      if Input.trigger?(Input::DOWN)
        $game_system.se_play($data_system.cursor_se)
        case @index
        when 300
          @index = 0
        when 301
          @index = $half_flag ? 8 : 4
        when 302
          @index = $half_flag ? 16 : 8
        when 303
          @index = $half_flag ? 20 : 10
        when 304
          @index = $half_flag ? 24 : 12
        when 305
          @index = $half_flag ? 28 : 14
        when 306
          @index = $half_flag ? 32 : 16
        when 307
          @index = $half_flag ? 36 : 18
        end
        while CHARACTER_TABLE[@page][@index] == "--"
          @index -= 1
        end
      end
      # カーソル上
      if Input.trigger?(Input::UP)
        $game_system.se_play($data_system.cursor_se)
        case @index
        when 300
          @index = 0
        when 301
          @index = $half_flag ? 8 : 4
        when 302
          @index = $half_flag ? 16 : 8
        when 303
          @index = $half_flag ? 20 : 10
        when 304
          @index = $half_flag ? 24 : 12
        when 305
          @index = $half_flag ? 28 : 14
        when 306
          @index = $half_flag ? 32 : 16
        when 307
          @index = $half_flag ? 36 : 18
        end
        begin
          @index += $half_flag ? 40 : 20
        end until CHARACTER_TABLE[@page][@index] == "--"
        @index -= $half_flag ? 40 : 20
      end
      # カーソル左
      if Input.trigger?(Input::LEFT)
        $game_system.se_play($data_system.cursor_se)
        @index -= 1
        if @index == 299
          @index = 307
        end
      end
      # カーソル右
      if Input.trigger?(Input::RIGHT)
        $game_system.se_play($data_system.cursor_se)
        @index += 1
        if @index == 308
          @index = 300
        end
      end
    # カーソル位置が文字の場合
    else
      # 方向ボタンの右が押された場合
      if Input.repeat?(Input::RIGHT)
        # 押下状態がリピートでない場合か、
        # カーソル位置が右端ではない場合
        # あるいは次が空でも"--"でもない場合
        if Input.trigger?(Input::RIGHT) or
           @index % ($half_flag ? 40 : 20) != ($half_flag ? 39 : 19) and
           CHARACTER_TABLE[@page][@index+1] != "" and
           CHARACTER_TABLE[@page][@index+1] != "--"
          # カーソルを右に移動
          $game_system.se_play($data_system.cursor_se)
          @index += 1
          while CHARACTER_TABLE[@page][@index] == ""
            @index += 1
          end
          if CHARACTER_TABLE[@page][@index] == "--"
            @index = @index - @index % $half_flag ? 40 : 20
          end
        end
      end
      # 方向ボタンの左が押された場合
      if Input.repeat?(Input::LEFT)
        # 押下状態がリピートでない場合か、
        # カーソル位置が左端ではない場合
        if Input.trigger?(Input::LEFT) or
           @index % ($half_flag ? 40 : 20) != 0
          # カーソルを左に移動
          $game_system.se_play($data_system.cursor_se)
          if @index > 0
            @index -= 1
          else
            @index = $half_flag ? 39 : 19
          end
          while CHARACTER_TABLE[@page][@index] == "" or
            CHARACTER_TABLE[@page][@index] == "--"
              @index -= 1
          end
        end
      end
      # 方向ボタンの下が押された場合
      if Input.repeat?(Input::DOWN)
        # カーソルを下に移動
        $game_system.se_play($data_system.cursor_se)
        @index += $half_flag ? 40 : 20
        while CHARACTER_TABLE[@page][@index] == ""
          @index += $half_flag ? 40 : 20
        end
        if CHARACTER_TABLE[@page][@index] == "--"
          case @index % ($half_flag ? 40 : 20)
          when ($half_flag ?  0.. 7 :  0.. 3)
            @index = 300
          when ($half_flag ?  8..15 :  4.. 7)
            @index = 301
          when ($half_flag ? 16..19 :  8.. 9)
            @index = 302
          when ($half_flag ? 20..23 : 10..11)
            @index = 303
          when ($half_flag ? 24..27 : 12..13)
            @index = 304
          when ($half_flag ? 28..31 : 14..15)
            @index = 305
          when ($half_flag ? 32..35 : 16..17)
            @index = 306
          when ($half_flag ? 36..39 : 18..19)
            @index = 307
          end
        end
      end
      # 方向ボタンの上が押された場合
      if Input.repeat?(Input::UP)
        # リピート状態でない場合
        if Input.trigger?(Input::UP) or @index >= ($half_flag ? 40 : 20)
          # カーソルを上に移動
          $game_system.se_play($data_system.cursor_se)
          begin
            @index -= $half_flag ? 40 : 20
            if @index < 0
              case @index
              when ($half_flag ? -40..-33 : -20..-17)
                @index = 300
              when ($half_flag ? -32..-25 : -16..-13)
                @index = 301
              when ($half_flag ? -24..-21 : -12..-11)
                @index = 302
              when ($half_flag ? -20..-17 : -10.. -9)
                @index = 303
              when ($half_flag ? -16..-13 :  -8.. -7)
                @index = 304
              when ($half_flag ? -12.. -9 :  -6.. -5)
                @index = 305
              when ($half_flag ?  -8.. -5 :  -4.. -3)
                @index = 306
              when ($half_flag ?  -4.. -1 :  -2.. -1)
                @index = 307
              end
              break
            end
          end while @index >= 0 and CHARACTER_TABLE[@page][@index] == ""
        end
      end
    end
    # L ボタンが押された場合
    if Input.repeat?(Input::L)
      # かなカナ / 英数記号 移動
      $game_system.se_play($data_system.cursor_se)
      if @page == 6
        @page = 55 # この55は漢字の最終ページ
      elsif @page == 0 # 漢字目次へ
        @page = 5
      else
        @page -= 1
        if @page == 4
          $half_flag = true
        else
          $half_flag = false
        end
      end
      @index = 0
      self.refresh
    end
    # R ボタンが押された場合
    if Input.repeat?(Input::R)
      # かなカナ / 英数記号 移動
      $game_system.se_play($data_system.cursor_se)
      if @page == 55 # この55は漢字の最終ページ
        @page = 6
      elsif @page == 5 # 漢字目次
        @page = 0
      else
        @page += 1
        if @page == 4
          $half_flag = true
        else
          $half_flag = false
        end
      end
      @index = 0
      self.refresh
    end
    if CHARACTER_TABLE[@page][@index] == "--"
      @index = 0
    end
    update_cursor_rect
  end
end

#--------------------------------------------------------------------------
# ● 半角判定
#--------------------------------------------------------------------------  
def is_half(char)
  if char == nil
    return false
  elsif char[/[。-゚ -~]/] != nil
    return true
  else
    return false
  end
end

#--------------------------------------------------------------------------
# ● バイト数取得
#--------------------------------------------------------------------------  
def byte_length(str)
  byte = 0
  strary = str.split(//)
  for i in 0 ... str.length
    break if strary == nil
    byte += is_half(strary) ? 1 : 2
  end
  return byte
end
我把上面的工作做好之后,测试时就是没有分类用的文字···

Lv1.梦旅人

梦石
0
星屑
49
在线时间
261 小时
注册时间
2010-9-17
帖子
737
2
发表于 2010-11-21 20:12:50 | 只看该作者
是不是有一些字是宋体不能显示的?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
43 小时
注册时间
2010-9-20
帖子
46
3
 楼主| 发表于 2010-11-22 19:53:41 | 只看该作者
回复 黑白旋律 的帖子

不是。我用的是微软雅黑的
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-13 06:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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