赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 2370 |
最后登录 | 2019-7-20 |
在线时间 | 1 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 62
- 在线时间
- 1 小时
- 注册时间
- 2008-1-4
- 帖子
- 260
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
我想将此窗口修改为,横向5个格子,纵向2个格子,即10个格子的备选物品栏,
并自定义光标矩形的间距 和 行距,现修改脚本如下,但仍然存在很多问题。望高手给予解决。
问题描述,光标矩形菜单处,当物品多的时候下拉菜单到最低端光标矩形会消失。
- #==============================================================================
- # ■ Window_EquipItem
- #------------------------------------------------------------------------------
- # 装备画面、显示浏览变更装备的候补物品的窗口。
- #==============================================================================
- class Window_EquipItem < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # actor : 角色
- # equip_type : 装备部位 (0~3)
- #--------------------------------------------------------------------------
- def initialize(actor, equip_type)
- # super(304, 57, 222, 20)
- super(197, 249, 250,210)#前两项为备选装备窗口的XY坐标,改大则向下。
- #super(100, 156, 640, 400)
- # super(0, 256, 640, 224)
- self.opacity = 200#新加
- @actor = actor
- @equip_type = equip_type
-
-
- # @item_max = 10#8个项目
- @column_max = 5#将项目选框分为2栏
-
- refresh
-
- # bitmap = Bitmap.new("Graphics/pictures/装备替换的物品栏.png")
- # src_rect=Rect.new(180,50,bitmap.width,bitmap.height)
- #self.contents.blt(0,0,bitmap,src_rect)
- self.active = false
- self.index = -1
- end
- #--------------------------------------------------------------------------
- # ● 获取物品
- #--------------------------------------------------------------------------
- def item
- return @data[self.index]
- end
- #--------------------------------------------------------------------------
- # ● 刷新
- #--------------------------------------------------------------------------
- def refresh
- if self.contents != nil
- self.contents.dispose
- self.contents = nil
- end
-
-
-
- @data = []
- # 添加可以装备的武器
- if @equip_type == 0
- weapon_set = $data_classes[@actor.class_id].weapon_set
- for i in 1...$data_weapons.size
- if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)
- @data.push($data_weapons[i])
- end
- end
- end
- # 添加可以装备的防具
- if @equip_type != 0
- armor_set = $data_classes[@actor.class_id].armor_set
- for i in 1...$data_armors.size
- if $game_party.armor_number(i) > 0 and armor_set.include?(i)
- if $data_armors[i].kind == @equip_type-1
- @data.push($data_armors[i])
- end
- end
- end
- end
- # 添加空白
- @data.push(nil)
- # 生成位图、描绘全部项目
- @item_max = @data.size
- self.contents = Bitmap.new(width - 32, row_max * 32)
- for i in 0...@item_max-1
- draw_item(i)
- end
- end
- #--------------------------------------------------------------------------
- # ● 项目的描绘
- # index : 项目符号
- #--------------------------------------------------------------------------
- def draw_item(index)
- item = @data[index]
-
- x = 4 + index % 5 * 44#光标移动的横向幅度#5同下面的5控制左右5步移动
- # x = 4 + index# % 2 * 30#光标移动的横向幅度,变大是加宽间距
- #y = index #/ 2 * 54#光标移动的纵向幅度
- y = index / 5 * 54
- #x = 4+ index % 2 * (288 + 32)
- # y = index / 2 * 32
- case item
- when RPG::Weapon
- number = $game_party.weapon_number(item.id)
- when RPG::Armor
- number = $game_party.armor_number(item.id)
- end
- bitmap = RPG::Cache.icon(item.icon_name)
- self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
- # self.contents.font.color = black_color
-
- self.contents.font.color = normal_color
- # self.contents.draw_text(x + 28, 50, 212, 32, item.name, 0)
- #self.contents.draw_text(x + 240,100, 16, 32, ":", 1)
- #self.contents.draw_text(x + 256, 150, 24, 32, number.to_s, 2)
- end
- #--------------------------------------------------------------------------
- # ● 刷新帮助文本
- #--------------------------------------------------------------------------
-
-
-
-
-
-
- #--------------------------------------------------------------------------
- # ● 更新光标举行
- #--------------------------------------------------------------------------
- def update_cursor_rect
- # 光标位置不满 0 的情况下
- if @index < 0
- self.cursor_rect.empty
- return
- end
- # 获取当前的行
- row = @index / @column_max
- # 当前行被显示开头行前面的情况下
- if row < self.top_row
- # 从当前行向开头行滚动
- self.top_row = row
- end
- # 当前行被显示末尾行之后的情况下
- if row > self.top_row + (self.page_row_max - 1)
- # 从当前行向末尾滚动
- self.top_row = row - (self.page_row_max - 1)
- end
-
-
- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
-
- x = 4 + index % 5 * 44#光标移动的横向幅度#5同下面的5控制左右5步移动
- # x = 4 + index# % 2 * 30#光标移动的横向幅度,变大是加宽间距
- #y = index #/ 2 * 54#光标移动的纵向幅度
- y = index / 5 * 54
- self.cursor_rect.set(x, y, 40, 40)#后两项为光标矩形的范围
- # self.cursor_rect.set(x, y, 64, 32)
- end
-
-
-
-
-
-
- def update_help
- @help_window.set_text(self.item == nil ? "" : self.item.description)
- end
- end
复制代码 |
|