Project1
标题:
关于输入姓名加强
[打印本页]
作者:
卓越大白痴
时间:
2008-5-16 06:51
标题:
关于输入姓名加强
输入加强默认只有3种 想多加要怎摸加啊 我瞎加的不只道那里不对 汉字重叠
求解 谢谢
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
class Scene_Name
# -------------------------
def main
@actor = $game_actors[$game_temp.name_actor_id]
@edit_window = Window_NameEdit.new(@actor, $game_temp.name_max_char)
@input_window = Window_NameInput.new
@alert_window = Window_Base.new(188, 208, 264, 64)
@alert_window.contents = Bitmap.new(228, 32)
@alert_window.contents.font.name = "黑体"
@alert_window.contents.font.size = 24
@alert_window.contents.draw_text(0, 0, 228, 32, "你必须输入一个名字")
@alert_window.z = 1001
@alert_window.visible = false
c1 = " English"
c2 = " ひらがな"
c3 = " 输入中文"
c4 = " 中文2"
c5 = " 中文3"
c6 = " 中文4"
c7 = " 中文5"
c8 = " 空格1"
c9 = " 退格1"
c10 = "默认姓名"
commands = [c1, c2, c3, c4, c5, c6, c7, c8, c9, c10]
@command_window = Window_NameCommand.new(160, commands)
@input_window.active = false
@input_window.visible = true
@command_window.index = 0
@command_window.visible = true
@command_window.active = true
@command_window.x = 0
@command_window.y = 128
@command_window.z = 1000
@alert_count = 0
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@edit_window.dispose
@input_window.dispose
@command_window.dispose
@alert_window.dispose
end
# -------------------------
def update
@edit_window.update
@input_window.update
@command_window.update
@alert_window.update
if @alert_window.visible == true && @alert_count > 0
@alert_count -= 1
if @alert_count <= 0
@command_window.active = true
@alert_window.visible = false
end
return
end
if @input_window.active == false
@command_window.active = true
end
if @command_window.active == false
@input_window.active = true
end
if Input.repeat?(Input::B) && @input_window.active == true
if @edit_window.index == 0
return
else
$game_system.se_play($data_system.cancel_se)
@edit_window.back
end
end
if Input.repeat?(Input::B) && @command_window.active == true
$game_system.se_play($data_system.buzzer_se)
return
end
if Input.trigger?(Input::C)
if @command_window.active == true
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
@input_window.mode = 1
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 1
$game_system.se_play($data_system.decision_se)
@input_window.mode = 2
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 2
$game_system.se_play($data_system.decision_se)
@input_window.mode = 3
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 3
$game_system.se_play($data_system.decision_se)
@input_window.mode = 4
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 4
$game_system.se_play($data_system.decision_se)
@input_window.mode = 5
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 5
$game_system.se_play($data_system.decision_se)
@input_window.mode = 6
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 6
$game_system.se_play($data_system.decision_se)
@input_window.mode = 7
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 7
if @edit_window.index < $game_temp.name_max_char
$game_system.se_play($data_system.decision_se)
@edit_window.add(" ")
else
$game_system.se_play($data_system.buzzer_se)
end
return
when 8
$game_system.se_play($data_system.decision_se)
@edit_window.back
return
when 9
$game_system.se_play($data_system.decision_se)
@edit_window.restore_default
return
when 10
if @edit_window.name == ""
$game_system.se_play($data_system.buzzer_se)
@alert_window.visible = true
@command_window.active = false
@alert_count = 60
return
end
$game_system.se_play($data_system.decision_se)
@actor.name = @edit_window.name
$game_system.se_play($data_system.decision_se)
$scene = Scene_Map.new
return
end
end
if @edit_window.index == $game_temp.name_max_char &&
@input_window.active == true
$game_system.se_play($data_system.buzzer_se)
return
end
if @input_window.character == "" && @input_window.active == true
$game_system.se_play($data_system.buzzer_se)
return
end
if @input_window.character != nil && @input_window.active == true &&
@edit_window.index <= $game_temp.name_max_char
$game_system.se_play($data_system.decision_se)
if @input_window.mode == 1
@edit_window.char_type[@edit_window.index] = 1
else
@edit_window.char_type[@edit_window.index] = 2
end
@edit_window.add(@input_window.character)
end
return
end
end
end
class Window_NameEdit < Window_Base
# ---------------------------
attr_accessor :char_type
attr_reader :name
attr_reader :index
# ---------------------------
def initialize(actor, max_char)
super(0, 0, 640, 128)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
@name = actor.name
@max_char = max_char
@char_type = []
name_array = @name.split(//)[0...@max_char]
@name = ""
for i in 0...name_array.size
@name += name_array[i]
@char_type[i] = 1
end
@default_name = @name
@index = name_array.size
refresh
update_cursor_rect
end
# ---------------------------
def restore_default
@name = @default_name
for i in 0..@default_name.size
@char_type[i] = 1
end
@index = @name.split(//).size
refresh
update_cursor_rect
end
# ---------------------------
def add(character)
if @index < @max_char 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[i]
end
@index -= 1
refresh
update_cursor_rect
end
end
# ---------------------------
def refresh
self.contents.clear
name_array = @name.split(//)
for i in 0...@max_char
c = name_array[i]
if c == nil
c = "_"
end
x = 320 - @max_char * 14 + i * 28
if @char_type[i] == 1
self.contents.font.name = "黑体"
self.contents.font.size = 24
else
self.contents.font.name = "黑体"
self.contents.font.size = 22
end
self.contents.draw_text(x, 32, 28, 32, c, 1)
end
draw_actor_graphic(@actor, 320 - @max_char * 14 - 40, 80)
end
# ---------------------------
def update_cursor_rect
x = 320 - @max_char * 14 + @index * 28
self.cursor_rect.set(x, 32, 28, 32)
end
# ---------------------------
def update
super
update_cursor_rect
end
end
class Window_NameInput < Window_Base
# ----------------------------------
attr_accessor :mode
# ----------------------------------
ENGLISH_TABLE =
[
"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","","","","",
"0","1","2","3","4",
"5", "6" ,"7", "8" ,"9",
"","","","","",
"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","","","","",
".",",","?","!","/",
"\\","<",">",";",":",
"","", "" , "" , "" ,
"@","#","$","%","^",
"&","*","(",")","",
"[","]","'","\"","~",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"", "" ,"", "" ,"",
"","","","","",
]
HIRAGANA_TABLE =
[
"あ","い","う","え","お",
"か","き","く","け","こ",
"さ","し","す","せ","そ",
"た","ち","つ","て","と",
"な","に","ぬ","ね","の",
"は","ひ","ふ","へ","ほ",
"ま","み","む","め","も",
"や", "" ,"ゆ", "" ,"よ",
"ら","り","る","れ","ろ",
"わ", "" ,"を", "" ,"ん",
"が","ぎ","ぐ","げ","ご",
"ざ","じ","ず","ぜ","ぞ",
"だ","ぢ","づ","で","ど",
"ば","び","ぶ","べ","?",
"ぱ","ぴ","ぷ","ぺ","ぽ",
"ゃ","ゅ","ょ","っ","ゎ",
"ぁ","ぃ","ぅ","ぇ","ぉ",
"ー","・", "" , "" , "" ,
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
]
KATAKANA_TABLE =
[
"赵","钱","孙","李","百",
"周","吴","郑","王","家",
"需","要","什","么","姓",
"文","字","请","自","己",
"去","填","加",",","只",
"要","替","换","现","有",
"文","字","即","可","。",
"你","也" ,"可", "以" ,"把",
"日","文","英","文","改",
"成","中" ,"文", "," ,"常",
"用","汉","字","基","本",
"也","就","够","用","了",
"文","字","太","多","玩",
"家","也","不","会","有",
"心","思","去","找","·",
"","","","","",
"","","","","",
"","","", "" , "" ,
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
]
KATAKANA_TABLE1=
[
"1","钱","孙","李","百",
"周","吴","郑","王","家",
"需","要","什","么","姓",
"文","字","请","自","己",
"去","填","加",",","只",
"要","替","换","现","有",
"文","字","即","可","。",
"你","也" ,"可", "以" ,"把",
"日","文","英","文","改",
"成","中" ,"文", "," ,"常",
"用","汉","字","基","本",
"也","就","够","用","了",
"文","字","太","多","玩",
"家","也","不","会","有",
"心","思","去","找","·",
"","","","","",
"","","","","",
"","","", "" , "" ,
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
]
KATAKANA_TABLE2=
[
"2","钱","孙","李","百",
"周","吴","郑","王","家",
"需","要","什","么","姓",
"文","字","请","自","己",
"去","填","加",",","只",
"要","替","换","现","有",
"文","字","即","可","。",
"你","也" ,"可", "以" ,"把",
"日","文","英","文","改",
"成","中" ,"文", "," ,"常",
"用","汉","字","基","本",
"也","就","够","用","了",
"文","字","太","多","玩",
"家","也","不","会","有",
"心","思","去","找","·",
"","","","","",
"","","","","",
"","","", "" , "" ,
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
]
KATAKANA_TABLE3=
[
"3","钱","孙","李","百",
"周","吴","郑","王","家",
"需","要","什","么","姓",
"文","字","请","自","己",
"去","填","加",",","只",
"要","替","换","现","有",
"文","字","即","可","。",
"你","也" ,"可", "以" ,"把",
"日","文","英","文","改",
"成","中" ,"文", "," ,"常",
"用","汉","字","基","本",
"也","就","够","用","了",
"文","字","太","多","玩",
"家","也","不","会","有",
"心","思","去","找","·",
"","","","","",
"","","","","",
"","","", "" , "" ,
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
]
KATAKANA_TABLE4=
[
"4","钱","孙","李","百",
"周","吴","郑","王","家",
"需","要","什","么","姓",
"文","字","请","自","己",
"去","填","加",",","只",
"要","替","换","现","有",
"文","字","即","可","。",
"你","也" ,"可", "以" ,"把",
"日","文","英","文","改",
"成","中" ,"文", "," ,"常",
"用","汉","字","基","本",
"也","就","够","用","了",
"文","字","太","多","玩",
"家","也","不","会","有",
"心","思","去","找","·",
"","","","","",
"","","","","",
"","","", "" , "" ,
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
]
# ----------------------------------
def initialize
super(160, 128, 480, 352)
self.contents = Bitmap.new(width - 32, height - 32)
self.active = false
@index = -1
@mode = 1
refresh
update_cursor_rect
end
# ----------------------------------
def index=(value)
@index = value
update_cursor_rect
end
#--------------------------------------
def character
if @mode == 1
return ENGLISH_TABLE[@index]
elsif @mode == 2
return HIRAGANA_TABLE[@index]
else
return KATAKANA_TABLE[@index]
end
end
# ----------------------------------
def refresh
self.contents.clear
for i in 0..134
x = 4 + i / 5 / 9 * 152 + i % 5 * 28
y = i / 5 % 9 * 32
if @mode == 1
self.contents.font.name = "黑体"
self.contents.font.size = 24
self.contents.draw_text(x, y, 28, 32, ENGLISH_TABLE[i], 1)
elsif @mode == 2
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, HIRAGANA_TABLE[i], 1)
else
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE[i], 1)
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE1[i], 1)
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE2[i], 1)
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE3[i], 1)
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE4[i], 1)
end
end
end
# ----------------------------------
def update_cursor_rect
if self.active == false
self.cursor_rect.empty
else
x = 4 + @index / 5 / 9 * 152 + @index % 5 * 28
y = @index / 5 % 9 * 32
self.cursor_rect.set(x, y, 28, 32)
end
end
# ----------------------------------
def update
super
if @index >= 0 && @index <= 134
if Input.repeat?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
if @index % 5 == 4
if @index < 94
@index += 41
end
else
@index += 1
end
end
if Input.repeat?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
if @index % 5 == 0
if @index < 45
self.active = false
@index = -999
return
else
@index -= 41
end
else
@index -= 1
end
end
if Input.repeat?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
if @index % 45 < 40
@index += 5
end
end
if Input.repeat?(Input::UP)
if Input.trigger?(Input::UP) or @index % 45 >= 5
$game_system.se_play($data_system.cursor_se)
if @index % 45 >= 5
@index -= 5
end
end
end
end
update_cursor_rect
end
end
class Window_NameCommand < Window_Command
# -------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
if i == 1 or i == 2
font = 1
self.contents.font.name = "黑体"
self.contents.font.size = 22
else
font = 0
self.contents.font.name = "黑体"
self.contents.font.size = 24
end
draw_item(i, normal_color, font)
end
end
# -------------------------------
def draw_item(index, color, f)
if f == 0
self.contents.font.color = color
self.contents.font.name = "黑体"
self.contents.font.size = 24
else
self.contents.font.name = "黑体"
self.contents.font.size = 22
end
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index])
end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
复制代码
[LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
殲滅天使·玲
时间:
2008-5-16 11:54
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
class Scene_Name
# -------------------------
def main
@actor = $game_actors[$game_temp.name_actor_id]
@edit_window = Window_NameEdit.new(@actor, $game_temp.name_max_char)
@input_window = Window_NameInput.new
@alert_window = Window_Base.new(188, 208, 264, 64)
@alert_window.contents = Bitmap.new(228, 32)
@alert_window.contents.font.name = "黑体"
@alert_window.contents.font.size = 24
@alert_window.contents.draw_text(0, 0, 228, 32, "你必须输入一个名字")
@alert_window.z = 1001
@alert_window.visible = false
c1 = " English"
c2 = " ひらがな"
c3 = " 输入中文"
c4 = " 中文2"
c5 = " 中文3"
c6 = " 中文4"
c7 = " 中文5"
c8 = " 空格1"
c9 = " 退格1"
c10 = "默认姓名"
commands = [c1, c2, c3, c4, c5, c6, c7, c8, c9, c10]
@command_window = Window_NameCommand.new(160, commands)
@input_window.active = false
@input_window.visible = true
@command_window.index = 0
@command_window.visible = true
@command_window.active = true
@command_window.x = 0
@command_window.y = 128
@command_window.z = 1000
@alert_count = 0
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@edit_window.dispose
@input_window.dispose
@command_window.dispose
@alert_window.dispose
end
# -------------------------
def update
@edit_window.update
@input_window.update
@command_window.update
@alert_window.update
if @alert_window.visible == true && @alert_count > 0
@alert_count -= 1
if @alert_count <= 0
@command_window.active = true
@alert_window.visible = false
end
return
end
if @input_window.active == false
@command_window.active = true
end
if @command_window.active == false
@input_window.active = true
end
if Input.repeat?(Input::B) && @input_window.active == true
if @edit_window.index == 0
return
else
$game_system.se_play($data_system.cancel_se)
@edit_window.back
end
end
if Input.repeat?(Input::B) && @command_window.active == true
$game_system.se_play($data_system.buzzer_se)
return
end
if Input.trigger?(Input::C)
if @command_window.active == true
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
@input_window.mode = 1
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 1
$game_system.se_play($data_system.decision_se)
@input_window.mode = 2
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 2
$game_system.se_play($data_system.decision_se)
@input_window.mode = 3
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 3
$game_system.se_play($data_system.decision_se)
@input_window.mode = 4
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 4
$game_system.se_play($data_system.decision_se)
@input_window.mode = 5
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 5
$game_system.se_play($data_system.decision_se)
@input_window.mode = 6
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 6
$game_system.se_play($data_system.decision_se)
@input_window.mode = 7
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 7
if @edit_window.index < $game_temp.name_max_char
$game_system.se_play($data_system.decision_se)
@edit_window.add(" ")
else
$game_system.se_play($data_system.buzzer_se)
end
return
when 8
$game_system.se_play($data_system.decision_se)
@edit_window.back
return
when 9
$game_system.se_play($data_system.decision_se)
@edit_window.restore_default
return
when 10
if @edit_window.name == ""
$game_system.se_play($data_system.buzzer_se)
@alert_window.visible = true
@command_window.active = false
@alert_count = 60
return
end
$game_system.se_play($data_system.decision_se)
@actor.name = @edit_window.name
$game_system.se_play($data_system.decision_se)
$scene = Scene_Map.new
return
end
end
if @edit_window.index == $game_temp.name_max_char &&
@input_window.active == true
$game_system.se_play($data_system.buzzer_se)
return
end
if @input_window.character == "" && @input_window.active == true
$game_system.se_play($data_system.buzzer_se)
return
end
if @input_window.character != nil && @input_window.active == true &&
@edit_window.index <= $game_temp.name_max_char
$game_system.se_play($data_system.decision_se)
if @input_window.mode == 1
@edit_window.char_type[@edit_window.index] = 1
else
@edit_window.char_type[@edit_window.index] = 2
end
@edit_window.add(@input_window.character)
end
return
end
end
end
class Window_NameEdit < Window_Base
# ---------------------------
attr_accessor :char_type
attr_reader :name
attr_reader :index
# ---------------------------
def initialize(actor, max_char)
super(0, 0, 640, 128)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
@name = actor.name
@max_char = max_char
@char_type = []
name_array = @name.split(//)[0...@max_char]
@name = ""
for i in 0...name_array.size
@name += name_array[i]
@char_type[i] = 1
end
@default_name = @name
@index = name_array.size
refresh
update_cursor_rect
end
# ---------------------------
def restore_default
@name = @default_name
for i in 0..@default_name.size
@char_type[i] = 1
end
@index = @name.split(//).size
refresh
update_cursor_rect
end
# ---------------------------
def add(character)
if @index < @max_char 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[i]
end
@index -= 1
refresh
update_cursor_rect
end
end
# ---------------------------
def refresh
self.contents.clear
name_array = @name.split(//)
for i in 0...@max_char
c = name_array[i]
if c == nil
c = "_"
end
x = 320 - @max_char * 14 + i * 28
if @char_type[i] == 1
self.contents.font.name = "黑体"
self.contents.font.size = 24
else
self.contents.font.name = "黑体"
self.contents.font.size = 22
end
self.contents.draw_text(x, 32, 28, 32, c, 1)
end
draw_actor_graphic(@actor, 320 - @max_char * 14 - 40, 80)
end
# ---------------------------
def update_cursor_rect
x = 320 - @max_char * 14 + @index * 28
self.cursor_rect.set(x, 32, 28, 32)
end
# ---------------------------
def update
super
update_cursor_rect
end
end
class Window_NameInput < Window_Base
# ----------------------------------
attr_accessor :mode
# ----------------------------------
ENGLISH_TABLE =
[
"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","","","","",
"0","1","2","3","4",
"5", "6" ,"7", "8" ,"9",
"","","","","",
"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","","","","",
".",",","?","!","/",
"\\","<",">",";",":",
"","", "" , "" , "" ,
"@","#","$","%","^",
"&","*","(",")","",
"[","]","'","\"","~",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"", "" ,"", "" ,"",
"","","","","",
]
HIRAGANA_TABLE =
[
"あ","い","う","え","お",
"か","き","く","け","こ",
"さ","し","す","せ","そ",
"た","ち","つ","て","と",
"な","に","ぬ","ね","の",
"は","ひ","ふ","へ","ほ",
"ま","み","む","め","も",
"や", "" ,"ゆ", "" ,"よ",
"ら","り","る","れ","ろ",
"わ", "" ,"を", "" ,"ん",
"が","ぎ","ぐ","げ","ご",
"ざ","じ","ず","ぜ","ぞ",
"だ","ぢ","づ","で","ど",
"ば","び","ぶ","べ","?",
"ぱ","ぴ","ぷ","ぺ","ぽ",
"ゃ","ゅ","ょ","っ","ゎ",
"ぁ","ぃ","ぅ","ぇ","ぉ",
"ー","・", "" , "" , "" ,
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
]
KATAKANA_TABLE =
[
"赵","钱","孙","李","百",
"周","吴","郑","王","家",
"需","要","什","么","姓",
"文","字","请","自","己",
"去","填","加",",","只",
"要","替","换","现","有",
"文","字","即","可","。",
"你","也" ,"可", "以" ,"把",
"日","文","英","文","改",
"成","中" ,"文", "," ,"常",
"用","汉","字","基","本",
"也","就","够","用","了",
"文","字","太","多","玩",
"家","也","不","会","有",
"心","思","去","找","·",
"","","","","",
"","","","","",
"","","", "" , "" ,
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
]
KATAKANA_TABLE1=
[
"隨","牛","五","雙","百",
"周","吴","郑","王","家",
"需","要","什","么","姓",
"文","字","请","自","己",
"去","填","加",",","只",
"要","替","换","现","有",
"文","字","即","可","。",
"你","也" ,"可", "以" ,"把",
"日","文","英","文","改",
"成","中" ,"文", "," ,"常",
"用","汉","字","基","本",
"也","就","够","用","了",
"文","字","太","多","玩",
"家","也","不","会","有",
"心","思","去","找","·",
"","","","","",
"","","","","",
"","","", "" , "" ,
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
]
KATAKANA_TABLE2=
[
"耳","钱","裏","李","百",
"周","吴","郑","王","家",
"需","要","什","么","姓",
"文","字","请","自","己",
"去","填","加",",","只",
"要","替","换","现","有",
"文","字","即","可","。",
"你","也" ,"可", "以" ,"把",
"日","文","英","文","改",
"成","中" ,"文", "," ,"常",
"用","汉","字","基","本",
"也","就","够","用","了",
"文","字","太","多","玩",
"家","也","不","会","有",
"心","思","去","找","·",
"","","","","",
"","","","","",
"","","", "" , "" ,
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
]
KATAKANA_TABLE3=
[
"頗","钱","孙","李","百",
"周","吴","郑","王","家",
"需","要","什","么","姓",
"文","字","请","自","己",
"去","填","加",",","只",
"要","替","换","现","有",
"文","字","即","可","。",
"你","也" ,"可", "以" ,"把",
"日","文","英","文","改",
"成","中" ,"文", "," ,"常",
"用","汉","字","基","本",
"也","就","够","用","了",
"文","字","太","多","玩",
"家","也","不","会","有",
"心","思","去","找","·",
"","","","","",
"","","","","",
"","","", "" , "" ,
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
]
KATAKANA_TABLE4=
[
"為","钱","孙","李","百",
"周","吴","郑","王","家",
"需","要","什","么","姓",
"文","字","请","自","己",
"去","填","加",",","只",
"要","替","换","现","有",
"文","字","即","可","。",
"你","也" ,"可", "以" ,"把",
"日","文","英","文","改",
"成","中" ,"文", "," ,"常",
"用","汉","字","基","本",
"也","就","够","用","了",
"文","字","太","多","玩",
"家","也","不","会","有",
"心","思","去","找","·",
"","","","","",
"","","","","",
"","","", "" , "" ,
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
"","","","","",
]
# ----------------------------------
def initialize
super(160, 128, 480, 352)
self.contents = Bitmap.new(width - 32, height - 32)
self.active = false
@index = -1
@mode = 1
refresh
update_cursor_rect
end
# ----------------------------------
def index=(value)
@index = value
update_cursor_rect
end
#--------------------------------------
def character
if @mode == 1
return ENGLISH_TABLE[@index]
elsif @mode == 2
return HIRAGANA_TABLE[@index]
elsif @mode == 3
return KATAKANA_TABLE[@index]
elsif @mode == 4
return KATAKANA_TABLE1[@index]
elsif @mode == 5
return KATAKANA_TABLE2[@index]
elsif @mode == 6
return KATAKANA_TABLE3[@index]
elsif @mode == 7
return KATAKANA_TABLE4[@index]
end
end
# ----------------------------------
def refresh
self.contents.clear
for i in 0..134
x = 4 + i / 5 / 9 * 152 + i % 5 * 28
y = i / 5 % 9 * 32
if @mode == 1
self.contents.font.name = "黑体"
self.contents.font.size = 24
self.contents.draw_text(x, y, 28, 32, ENGLISH_TABLE[i], 1)
elsif @mode == 2
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, HIRAGANA_TABLE[i], 1)
elsif @mode == 3
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE[i], 1)
elsif @mode == 4
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE1[i], 1)
elsif @mode == 5
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE2[i], 1)
elsif @mode == 6
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE3[i], 1)
elsif @mode == 7
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE4[i], 1)
end
end
end
# ----------------------------------
def update_cursor_rect
if self.active == false
self.cursor_rect.empty
else
x = 4 + @index / 5 / 9 * 152 + @index % 5 * 28
y = @index / 5 % 9 * 32
self.cursor_rect.set(x, y, 28, 32)
end
end
# ----------------------------------
def update
super
if @index >= 0 && @index <= 134
if Input.repeat?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
if @index % 5 == 4
if @index < 94
@index += 41
end
else
@index += 1
end
end
if Input.repeat?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
if @index % 5 == 0
if @index < 45
self.active = false
@index = -999
return
else
@index -= 41
end
else
@index -= 1
end
end
if Input.repeat?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
if @index % 45 < 40
@index += 5
end
end
if Input.repeat?(Input::UP)
if Input.trigger?(Input::UP) or @index % 45 >= 5
$game_system.se_play($data_system.cursor_se)
if @index % 45 >= 5
@index -= 5
end
end
end
end
update_cursor_rect
end
end
class Window_NameCommand < Window_Command
# -------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
if i == 1 or i == 2
font = 1
self.contents.font.name = "黑体"
self.contents.font.size = 22
else
font = 0
self.contents.font.name = "黑体"
self.contents.font.size = 24
end
draw_item(i, normal_color, font)
end
end
# -------------------------------
def draw_item(index, color, f)
if f == 0
self.contents.font.color = color
self.contents.font.name = "黑体"
self.contents.font.size = 24
else
self.contents.font.name = "黑体"
self.contents.font.size = 22
end
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index])
end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
复制代码
楼主的脚本弄好了. 现在绝对绝对不会在重叠了.....{/dy}
修改的地方嘛.其实你自己研究下规律就发现了. 下面这地方需要分别定义
def character
if @mode == 1
return ENGLISH_TABLE[@index]
elsif @mode == 2
return HIRAGANA_TABLE[@index]
elsif @mode == 3
return KATAKANA_TABLE[@index]
elsif @mode == 4
return KATAKANA_TABLE1[@index]
elsif @mode == 5
return KATAKANA_TABLE2[@index]
elsif @mode == 6
return KATAKANA_TABLE3[@index]
elsif @mode == 7
return KATAKANA_TABLE4[@index]
end
end
复制代码
def refresh
self.contents.clear
for i in 0..134
x = 4 + i / 5 / 9 * 152 + i % 5 * 28
y = i / 5 % 9 * 32
if @mode == 1
self.contents.font.name = "黑体"
self.contents.font.size = 24
self.contents.draw_text(x, y, 28, 32, ENGLISH_TABLE[i], 1)
elsif @mode == 2
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, HIRAGANA_TABLE[i], 1)
elsif @mode == 3
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE[i], 1)
elsif @mode == 4
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE1[i], 1)
elsif @mode == 5
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE2[i], 1)
elsif @mode == 6
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE3[i], 1)
elsif @mode == 7
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE4[i], 1)
end
end
end
复制代码
看懂了吧 呵呵 相信你看懂了..... [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1