Project1

标题: 装备菜单加鼠标控制的方法??? [打印本页]

作者: zhli667    时间: 2009-6-6 02:53
标题: 装备菜单加鼠标控制的方法???
这个脚本不是默认的,鼠标整合脚本不支持。哪位高手给帮帮忙给这个装备菜单脚本加鼠标控制...

装备菜单
  1. #==============================================================================
  2. # ■ Window_EquipRight
  3. #------------------------------------------------------------------------------
  4. #  装备画面、显示角色现在装备的物品的窗口。
  5. #==============================================================================

  6. class Window_EquipRight_New < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     actor : 角色
  10.   #--------------------------------------------------------------------------
  11.   def initialize(actor)
  12.    # super(320, 30, 180, 380)
  13.    super(320, 30, 280, 260)
  14.     self.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  15.     self.opacity = 100
  16.     self.contents = Bitmap.new(width - 32, height - 32)
  17.     @actor = actor
  18.     refresh
  19.     self.index = 0
  20.   end
  21.   def index=(index)
  22.     @index = index
  23.     # 刷新帮助文本 (update_help 定义了继承目标)
  24.     if self.active and @help_window != nil
  25.       update_help
  26.     end
  27.     # 刷新光标矩形
  28.     update_cursor_rect
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 获取物品
  32.   #--------------------------------------------------------------------------
  33.   def item
  34.     return @data[self.index]
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 刷新
  38.   #--------------------------------------------------------------------------
  39.   def refresh
  40.     self.contents.clear
  41.     @data = []
  42.     @data.push($data_weapons[@actor.weapon_id])
  43.     @data.push($data_armors[@actor.armor1_id])
  44.     @data.push($data_armors[@actor.armor2_id])
  45.     @data.push($data_armors[@actor.armor3_id])
  46.     @data.push($data_armors[@actor.armor4_id])
  47.      @data.push($data_armors[@actor.armor5_id])
  48.      @data.push($data_armors[@actor.armor6_id])
  49.      @data.push($data_armors[@actor.armor7_id])
  50.     @item_max = @data.size
  51.     self.contents.font.color = system_color
  52.     self.contents.font.size = 16
  53.   #  self.contents.draw_item_name(4, 0, 92, 32, $data_system.words.weapon)
  54.    
  55.     draw_item_name($data_weapons[@actor.weapon_id], 20, 77)#武器
  56.     draw_item_name($data_armors[@actor.armor1_id], 90 , 152)#鞋
  57.     draw_item_name($data_armors[@actor.armor2_id], 90 , 2)#头
  58.     draw_item_name($data_armors[@actor.armor3_id], 90 , 77)#衣服
  59.     draw_item_name($data_armors[@actor.armor4_id], 160 , 77)#书
  60.     draw_item_name($data_armors[@actor.armor5_id], 160 , 2)#法器
  61.     draw_item_name($data_armors[@actor.armor6_id], 20 , 152)#首饰1
  62.     draw_item_name($data_armors[@actor.armor7_id], 160 ,132) #首饰2
  63.    
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 刷新帮助文本
  67.   #--------------------------------------------------------------------------
  68.   def update_help
  69.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 更新光标举行
  73.   #--------------------------------------------------------------------------
  74.   def update_cursor_rect
  75.     # 光标位置不满 0 的情况下
  76.     if @index < 0
  77.       self.cursor_rect.empty
  78.       return
  79.     end
  80.     # 获取当前的行
  81.     row = @index / @column_max
  82.     # 当前行被显示开头行前面的情况下
  83.     if row < self.top_row
  84.       # 从当前行向开头行滚动
  85.       self.top_row = row
  86.     end
  87.     # 当前行被显示末尾行之后的情况下
  88.     if row > self.top_row + (self.page_row_max - 1)
  89.       # 从当前行向末尾滚动
  90.       self.top_row = row - (self.page_row_max - 1)
  91.     end
  92.     # 计算光标的宽
  93.     cursor_width =  75 #self.width / @column_max - 32
  94.     # 计算光标坐标

  95.    # x = @index % @column_max * (cursor_width + 32)
  96.     #y = @index / @column_max * 40 - self.oy
  97.     # 更新国标矩形
  98.    
  99.     case index
  100.   when 0 #武器
  101.       x = 20
  102.       y = 77
  103.      
  104.    
  105.   when 1 #鞋
  106.       x = 90
  107.       y = 152
  108.       
  109.      
  110.   when 2 #头戴
  111.       x = 90
  112.       y = 2
  113.       
  114.      
  115.   when 3 #衣服
  116.       x = 90
  117.       y = 77
  118.       
  119.   when 4 # 书
  120.       x = 160
  121.       y = 77
  122.   when 5 # 法器
  123.        x = 160
  124.       y = 2        
  125.   when 6 # 首饰1
  126.        x = 20
  127.       y = 152   
  128.    
  129.   when 7 # 首饰2
  130.       x = 160
  131.       y = 152  
  132.     end  
  133. self.cursor_rect.set(x, y, cursor_width, 75)
  134. end


  135. def update
  136.    #super
  137. if self.active #and @item_max > 0 and @index >= 0 and $fight != 2
  138.    
  139.    # 一句代码 解决所有问题
  140. case index
  141.   
  142.     when 0 #武器
  143.       
  144.      # 方向键上被按下的情况下
  145.         if Input.repeat?(Input::UP)
  146.           # 光标指向头
  147.           $game_system.se_play($data_system.cursor_se)
  148.           @index = 2      
  149.         end
  150.       # 方向键下被按下的情况下
  151.         if Input.repeat?(Input::DOWN)
  152.           # 光标指向首饰1
  153.           $game_system.se_play($data_system.cursor_se)
  154.           @index = 6      
  155.         end
  156.       # 方向键右被按下的情况下
  157.         if Input.repeat?(Input::RIGHT)
  158.           # 光标指向衣服
  159.           $game_system.se_play($data_system.cursor_se)
  160.           @index = 3      
  161.         end
  162.       # 方向键左被按下的情况下
  163.         if Input.repeat?(Input::LEFT)
  164.           # 光标指向书
  165.           $game_system.se_play($data_system.cursor_se)
  166.           @index = 4
  167.         end
  168.     when 1#鞋子
  169.     # 方向键上被按下的情况下
  170.         if Input.repeat?(Input::UP)
  171.           # 光标指向衣服
  172.           $game_system.se_play($data_system.cursor_se)
  173.           @index = 3      
  174.         end
  175.       # 方向键下被按下的情况下
  176.         if Input.repeat?(Input::DOWN)
  177.           # 光标指向头
  178.           $game_system.se_play($data_system.cursor_se)
  179.           @index = 2      
  180.         end
  181.       # 方向键右被按下的情况下
  182.         if Input.repeat?(Input::RIGHT)
  183.           # 光标指向首饰2
  184.           $game_system.se_play($data_system.cursor_se)
  185.           @index = 6      
  186.         end
  187.       # 方向键左被按下的情况下
  188.         if Input.repeat?(Input::LEFT)
  189.           # 光标指向首饰1
  190.           $game_system.se_play($data_system.cursor_se)
  191.           @index = 6
  192.         end
  193.       
  194.     when 2#头戴
  195.       
  196.         # 方向键上被按下的情况下
  197.         if Input.repeat?(Input::UP)
  198.           # 光标指向鞋子
  199.           $game_system.se_play($data_system.cursor_se)
  200.           @index = 1      
  201.         end
  202.       # 方向键下被按下的情况下
  203.         if Input.repeat?(Input::DOWN)
  204.           # 光标指向衣服
  205.           $game_system.se_play($data_system.cursor_se)
  206.           @index = 3      
  207.         end
  208.       # 方向键右被按下的情况下
  209.         if Input.repeat?(Input::RIGHT)
  210.           # 光标指向法器
  211.           $game_system.se_play($data_system.cursor_se)
  212.           @index = 5      
  213.         end
  214.       # 方向键左被按下的情况下
  215.         if Input.repeat?(Input::LEFT)
  216.           # 光标指向法器
  217.           $game_system.se_play($data_system.cursor_se)
  218.           @index = 5
  219.         end
  220.       
  221.     when 3#衣服
  222.         if Input.repeat?(Input::DOWN)
  223.           # 光标指向鞋子
  224.           $game_system.se_play($data_system.cursor_se)
  225.           @index = 1      
  226.         end
  227.           # 方向键上被按下的情况下
  228.         if Input.repeat?(Input::UP)
  229.           # 光标指向头戴
  230.           $game_system.se_play($data_system.cursor_se)
  231.           @index = 2      
  232.         end
  233.           # 方向键右被按下的情况下
  234.         if Input.repeat?(Input::RIGHT)
  235.           # 光标指向书
  236.           $game_system.se_play($data_system.cursor_se)
  237.           @index = 4      
  238.         end
  239.           # 方向键左被按下的情况下
  240.         if Input.repeat?(Input::LEFT)
  241.           # 光标指向武器
  242.           $game_system.se_play($data_system.cursor_se)
  243.           @index = 0
  244.         end
  245.     when 4#书
  246.         # 方向键上被按下的情况下
  247.         if Input.repeat?(Input::UP)
  248.           # 光标指向法器
  249.           $game_system.se_play($data_system.cursor_se)
  250.           @index = 5      
  251.         end
  252.       # 方向键下被按下的情况下
  253.         if Input.repeat?(Input::DOWN)
  254.           # 光标指向首饰2
  255.           $game_system.se_play($data_system.cursor_se)
  256.           @index = 1      
  257.         end
  258.       # 方向键右被按下的情况下
  259.         if Input.repeat?(Input::RIGHT)
  260.           # 光标指向武器
  261.           $game_system.se_play($data_system.cursor_se)
  262.           @index = 0      
  263.         end
  264.       # 方向键左被按下的情况下
  265.         if Input.repeat?(Input::LEFT)
  266.           # 光标指向衣服
  267.           $game_system.se_play($data_system.cursor_se)
  268.           @index = 3
  269.         end
  270.      when 5#法器
  271.         # 方向键上被按下的情况下
  272.         if Input.repeat?(Input::UP)
  273.           # 光标指向首饰2
  274.           $game_system.se_play($data_system.cursor_se)
  275.           @index = 1      
  276.         end
  277.       # 方向键下被按下的情况下
  278.         if Input.repeat?(Input::DOWN)
  279.           # 光标指向书
  280.           $game_system.se_play($data_system.cursor_se)
  281.           @index = 4      
  282.         end
  283.       # 方向键右被按下的情况下
  284.         if Input.repeat?(Input::RIGHT)
  285.           # 光标指向头戴
  286.           $game_system.se_play($data_system.cursor_se)
  287.           @index = 2  
  288.          end
  289.        # 方向键左被按下的情况下
  290.         if Input.repeat?(Input::LEFT)
  291.           # 光标指向头戴
  292.           $game_system.se_play($data_system.cursor_se)
  293.           @index = 2
  294.         end   
  295.      when 6#首饰1
  296.         # 方向键上被按下的情况下
  297.         if Input.repeat?(Input::UP)
  298.           # 光标指向武器
  299.           $game_system.se_play($data_system.cursor_se)
  300.           @index = 0      
  301.         end
  302.       # 方向键下被按下的情况下
  303.         if Input.repeat?(Input::DOWN)
  304.           # 光标指向头戴
  305.           $game_system.se_play($data_system.cursor_se)
  306.           @index = 2      
  307.         end
  308.       # 方向键右被按下的情况下
  309.         if Input.repeat?(Input::RIGHT)
  310.           # 光标指向鞋子
  311.           $game_system.se_play($data_system.cursor_se)
  312.           @index = 1      
  313.         end
  314.       # 方向键左被按下的情况下
  315.         if Input.repeat?(Input::LEFT)
  316.           # 光标指向首饰2
  317.           $game_system.se_play($data_system.cursor_se)
  318.           @index = 1
  319.         end
  320.       when 7#首饰2
  321.         # 方向键上被按下的情况下
  322.         if Input.repeat?(Input::UP)
  323.           # 光标指向书
  324.           $game_system.se_play($data_system.cursor_se)
  325.           @index = 4      
  326.         end
  327.       # 方向键下被按下的情况下
  328.         if Input.repeat?(Input::DOWN)
  329.           # 光标指向法器
  330.           $game_system.se_play($data_system.cursor_se)
  331.           @index = 5      
  332.         end
  333.       # 方向键右被按下的情况下
  334.         if Input.repeat?(Input::RIGHT)
  335.           # 光标指向首饰1
  336.           $game_system.se_play($data_system.cursor_se)
  337.           @index = 6      
  338.         end
  339.       # 方向键左被按下的情况下
  340.         if Input.repeat?(Input::LEFT)
  341.           # 光标指向鞋子
  342.           $game_system.se_play($data_system.cursor_se)
  343.           @index = 1
  344.         end               
  345.       end
  346.     end
  347.    
  348.         
  349.     # 刷新帮助文本 (update_help 定义了继承目标)
  350.    if self.active and @help_window != nil
  351.       update_help
  352.     end
  353.     # 刷新光标矩形
  354.     update_cursor_rect
  355.   end

  356.   

  357. end

复制代码

作者: 倭卜僾伱    时间: 2009-6-6 04:00
不是自己本来就可以吗?
涉事些吧
作者: zhli667    时间: 2009-6-7 06:43
...............




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