Lv1.梦旅人
您需要 登录 才可以下载或查看,没有帐号?注册会员
#encoding:utf-8#==============================================================================# ■ 图片选项(修改Window_Selectable 和 Window_Command)by 只有金刚心# (不支持鼠标)#------------------------------------------------------------------------------# 使用方法:按照VA默认的在窗口添加指令的原方法add_command,多填写上参数就可以了。# 新增参数:# usepic - 是否使用图片,如果使用图片,则填写true,反正false# usepic的参数默认false,即不存在图片时使用VA默认的文字指令# pic- 默认显示图片,默认nil# over_pic - 当正在选择时的图片,即光标移动上去的图片,默认nil# overd - 是否已经选择,无需填写# 例如:add_command("新游戏", :new_game, true, nil, true, "图片1.png", "图片2.png")#============================================================================== class Window_Selectable < Window_Base #-------------------------------------------------------------------------- # ● 处理光标的移动 #-------------------------------------------------------------------------- def process_cursor_move return unless cursor_movable? last_index = @index cursor_down (Input.trigger?(:DOWN)) if Input.repeat?(:DOWN) cursor_up (Input.trigger?(:UP)) if Input.repeat?(:UP) cursor_right(Input.trigger?(:RIGHT)) if Input.repeat?(:RIGHT) cursor_left (Input.trigger?(:LEFT)) if Input.repeat?(:LEFT) cursor_pagedown if !handle?(:pagedown) && Input.trigger?(:R) cursor_pageup if !handle?(:pageup) && Input.trigger?(:L) #★★当光标移动时重新绘制指令★★ if @index != last_index Sound.play_cursor #重置指令的参数overd为false move_overd_pic?(last_index) draw_all_items end end #-------------------------------------------------------------------------- # ● 更新光标 #-------------------------------------------------------------------------- def update_cursor if @cursor_all cursor_rect.set(0, 0, contents.width, row_max * item_height) self.top_row = 0 elsif @index < 0 cursor_rect.empty else #★★更新图片指令★★ if pic_or_text(@index) == true cursor_rect.empty overd_pic?(@index) redraw_item(@index) #保留原来的光标 else ensure_cursor_visible cursor_rect.set(item_rect(@index)) end end end #★★图片指令函数★★ def pic_or_text(index) end def overd_pic(index) end end class Window_Command < Window_Selectable #★★添加指令★★ #(保留原指令:name-指令名称,symbol-对应的符号,enabled-有效状态的标志,ext-任意的扩展数据) #(新增参数usepic-是否使用图片,pic-默认显示图片,over_pic-当正在选择时的图片,overd-是否已经选择) def add_command(name, symbol, enabled = true, ext = nil, usepic = false, pic = nil, over_pic = nil,overd = false) @list.push({:name=>name, :symbol=>symbol, :enabled=>enabled, :ext=>ext,:usepic=>usepic, :pic=>pic, :over_pic=>over_pic, :overd=>overd}) end #★★绘制图片指令★★ def draw_item(index) #绘制图片指令 if @list[index][:usepic] == true && @list[index][:pic] != nil if @list[index][:over_pic] != nil && @list[index][:overd] == true @bitmap = Cache.picture(@list[index][:over_pic]) else @bitmap = Cache.picture(@list[index][:pic]) end rect = Rect.new(0, 0, @bitmap.width, @bitmap.height) #图片指令的坐标参照文字指令 contents.blt(index % col_max * (item_width + spacing), index / col_max * item_height, @bitmap, rect) @bitmap.dispose #保留原来的文字指令 else change_color(normal_color, command_enabled?(index)) draw_text(item_rect_for_text(index), command_name(index), alignment) end end #★★判断使用图片还是文字★★ def current_usepic? current_data ? current_data[:usepic] : false end def pic_or_text(index) return current_usepic? end #★★判断光标是否移动到图片上★★ def move_overd_pic?(index) @list[index][:overd] = false end def overd_pic?(index) @list[index][:overd] = true end end
#encoding:utf-8 #============================================================================== # ■ 图片选项(修改Window_Selectable 和 Window_Command)by 只有金刚心 # (不支持鼠标) #------------------------------------------------------------------------------ # 使用方法:按照VA默认的在窗口添加指令的原方法add_command,多填写上参数就可以了。 # 新增参数: # usepic - 是否使用图片,如果使用图片,则填写true,反正false # usepic的参数默认false,即不存在图片时使用VA默认的文字指令 # pic- 默认显示图片,默认nil # over_pic - 当正在选择时的图片,即光标移动上去的图片,默认nil # overd - 是否已经选择,无需填写 # 例如:add_command("新游戏", :new_game, true, nil, true, "图片1.png", "图片2.png") #============================================================================== class Window_Selectable < Window_Base #-------------------------------------------------------------------------- # ● 处理光标的移动 #-------------------------------------------------------------------------- def process_cursor_move return unless cursor_movable? last_index = @index cursor_down (Input.trigger?(:DOWN)) if Input.repeat?(:DOWN) cursor_up (Input.trigger?(:UP)) if Input.repeat?(:UP) cursor_right(Input.trigger?(:RIGHT)) if Input.repeat?(:RIGHT) cursor_left (Input.trigger?(:LEFT)) if Input.repeat?(:LEFT) cursor_pagedown if !handle?(:pagedown) && Input.trigger?(:R) cursor_pageup if !handle?(:pageup) && Input.trigger?(:L) #★★当光标移动时重新绘制指令★★ if @index != last_index Sound.play_cursor #重置指令的参数overd为false move_overd_pic?(last_index) draw_all_items end end #-------------------------------------------------------------------------- # ● 更新光标 #-------------------------------------------------------------------------- def update_cursor if @cursor_all cursor_rect.set(0, 0, contents.width, row_max * item_height) self.top_row = 0 elsif @index < 0 cursor_rect.empty else #★★更新图片指令★★ if pic_or_text(@index) == true cursor_rect.empty overd_pic?(@index) redraw_item(@index) #保留原来的光标 else ensure_cursor_visible cursor_rect.set(item_rect(@index)) end end end #★★图片指令函数★★ def pic_or_text(index) end def overd_pic(index) end end class Window_Command < Window_Selectable #★★添加指令★★ #(保留原指令:name-指令名称,symbol-对应的符号,enabled-有效状态的标志,ext-任意的扩展数据) #(新增参数usepic-是否使用图片,pic-默认显示图片,over_pic-当正在选择时的图片,overd-是否已经选择) def add_command(name, symbol, enabled = true, ext = nil, usepic = false, pic = nil, over_pic = nil,overd = false) @list.push({:name=>name, :symbol=>symbol, :enabled=>enabled, :ext=>ext,:usepic=>usepic, :pic=>pic, :over_pic=>over_pic, :overd=>overd}) end #★★绘制图片指令★★ def draw_item(index) #绘制图片指令 if @list[index][:usepic] == true && @list[index][:pic] != nil if @list[index][:over_pic] != nil && @list[index][:overd] == true @bitmap = Cache.picture(@list[index][:over_pic]) else @bitmap = Cache.picture(@list[index][:pic]) end rect = Rect.new(0, 0, @bitmap.width, @bitmap.height) #图片指令的坐标参照文字指令 contents.blt(index % col_max * (item_width + spacing), index / col_max * item_height, @bitmap, rect) @bitmap.dispose #保留原来的文字指令 else change_color(normal_color, command_enabled?(index)) draw_text(item_rect_for_text(index), command_name(index), alignment) end end #★★判断使用图片还是文字★★ def current_usepic? current_data ? current_data[:usepic] : false end def pic_or_text(index) return current_usepic? end #★★判断光标是否移动到图片上★★ def move_overd_pic?(index) @list[index][:overd] = false end def overd_pic?(index) @list[index][:overd] = true end end
class Window_MenuCommand < Window_Command def add_main_commands add_command(Vocab::status, :status, true, nil, true, "MENUNOTE", "MENUNOTE_1") end
使用道具 举报
查看全部评分
本版积分规则 发表回复 回帖后跳转到最后一页
献给最先抵达这片土地的你。参加预注册的用户即可获得。
折叠内容标题(非必须)
折叠内容
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2025-1-24 22:24
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.