| 赞 | 0  | 
 
| VIP | 0 | 
 
| 好人卡 | 9 | 
 
| 积分 | 1 | 
 
| 经验 | 15515 | 
 
| 最后登录 | 2022-1-17 | 
 
| 在线时间 | 1083 小时 | 
 
 
 
 
 
Lv1.梦旅人 
	- 梦石
 - 0 
 
        - 星屑
 - 70 
 
        - 在线时间
 - 1083 小时
 
        - 注册时间
 - 2013-3-29
 
        - 帖子
 - 2394
 
 
 
 | 
	
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员  
 
x
 
附件: 
 
图片选项.rar
(1.44 MB, 下载次数: 114)
 
打开菜单: 
 
 
无异状 
指向选项: 
 
 
红圈的地方有原来的痕迹…… 
移开选项: 
 
 
又有选中时的图片残留着……怎么解决? 
相关脚本: 
#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 
 
 class Window_MenuCommand < Window_Command  
  def add_main_commands  
    add_command(Vocab::status, :status, true, nil, true, "MENUNOTE", "MENUNOTE_1")  
  end  
 
  |   
 
 
 
 |