Project1

标题: 装备画面窗口大小位置的问题 [打印本页]

作者: 忧伤的小猫    时间: 2008-6-9 02:57
标题: 装备画面窗口大小位置的问题
先说一下 出现的问题,
在装备备选窗口中,备选装备横向排列(每行2个,我要求的是每行一个,光标纵向移动)
光标确实是纵向移动的,但是光标指在一个空白的位置上的时候(实际是指在横向的第二个装备上)。。。
如图:

脚本如下
  1. #====#==============================================================================
  2. # ■ Window_EquipItem
  3. #------------------------------------------------------------------------------
  4. #  装备画面、显示浏览变更装备的候补物品的窗口。
  5. #==============================================================================

  6. class Window_EquipItem < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     actor      : 角色
  10.   #     equip_type : 装备部位 (0~3)
  11.   #--------------------------------------------------------------------------
  12.   def initialize(actor, equip_type)
  13.     super(272, 256, 368, 224)
  14.     @actor = actor
  15.     @equip_type = equip_type
  16.     @column_max = 1
  17.     refresh
  18.     self.active = false
  19.     self.index = -1
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 获取物品
  23.   #--------------------------------------------------------------------------
  24.   def item
  25.     return @data[self.index]
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 刷新
  29.   #--------------------------------------------------------------------------
  30.   def refresh
  31.     if self.contents != nil
  32.       self.contents.dispose
  33.       self.contents = nil
  34.     end
  35.     @data = []
  36.     # 添加可以装备的武器
  37.     if @equip_type == 0
  38.       weapon_set = $data_classes[@actor.class_id].weapon_set
  39.       for i in 1...$data_weapons.size
  40.         if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)
  41.           @data.push($data_weapons[i])
  42.         end
  43.       end
  44.     end
  45.     # 添加可以装备的防具
  46.     if @equip_type != 0
  47.       armor_set = $data_classes[@actor.class_id].armor_set
  48.       for i in 1...$data_armors.size
  49.         if $game_party.armor_number(i) > 0 and armor_set.include?(i)
  50.           if $data_armors[i].kind == @equip_type-1
  51.             @data.push($data_armors[i])
  52.           end
  53.         end
  54.       end
  55.     end
  56.     # 添加空白
  57.     @data.push(nil)
  58.     # 生成位图、描绘全部项目
  59.     @item_max = @data.size
  60.     self.contents = Bitmap.new(width - 32, row_max * 32)
  61.     for i in 0...@item_max-1
  62.       draw_item(i)
  63.     end
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 项目的描绘
  67.   #     index : 项目符号
  68.   #--------------------------------------------------------------------------
  69.   def draw_item(index)
  70.     item = @data[index]
  71.     x = 4
  72.     y = index * 32
  73.     case item
  74.     when RPG::Weapon
  75.       number = $game_party.weapon_number(item.id)
  76.     when RPG::Armor
  77.       number = $game_party.armor_number(item.id)
  78.     end
  79.     bitmap = RPG::Cache.icon(item.icon_name)
  80.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
  81.     self.contents.font.color = normal_color
  82.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  83.     self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  84.     self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ● 刷新帮助文本
  88.   #--------------------------------------------------------------------------
  89.   def update_help
  90.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  91.   end
  92. end
复制代码
[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: hitlerson    时间: 2008-6-9 03:03
你要一行几个?现在是一个啊
话说@column_max = 1
1就是1列,2就是2列
作者: 忧伤的小猫    时间: 2008-6-9 03:06
以下引用hitlerson于2008-6-8 19:03:04的发言:

你要一行几个?现在是一个啊
话说@column_max = 1
1就是1列,2就是2列

确实是一行一个,但是第2,4,6。。。等双数的装备图标会横向排列,都排出格了,
虽然他们是横向排列 但是光标缺不能横向选择,光标会移动到纵向上一个空白的位置上完成更换装备。
上面那个图 就是 虽然光标落在了空白上,实际上选择的是备选装备中的第二个装备,
也就是 第一行上横向出格的那个图标所代表的装备
作者: hitlerson    时间: 2008-6-9 03:10
  #--------------------------------------------------------------------------
  # ● 项目的描绘
  #     index : 项目符号
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    x = 4
    y = index * 32  《=====  这个地方对的啊,你忽悠我??????


是不是你下面还有Window_EquipItem的脚本?自己检查了
作者: 忧伤的小猫    时间: 2008-6-9 03:12
以下引用hitlerson于2008-6-8 19:10:39的发言:

#--------------------------------------------------------------------------
# ● 项目的描绘
#     index : 项目符号
#--------------------------------------------------------------------------
def draw_item(index)
   item = @data[index]
   x = 4
   y = index * 32  《=====  这个地方对的啊,你忽悠我??????

我没事忽悠您干嘛啊 游戏运行起来确实是啊 难道是我拿错脚本了?我复制过来的是“Window_EquipItem”里的脚本啊!应该没错啊!!

作者: hitlerson    时间: 2008-6-9 03:15
是不是你下面还有Window_EquipItem的脚本?自己检查了

或者把这个脚本放下面点,MIAN前 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




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