赞 | 1 |
VIP | 0 |
好人卡 | 0 |
积分 | 92 |
经验 | 0 |
最后登录 | 2024-10-20 |
在线时间 | 466 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 9163
- 在线时间
- 466 小时
- 注册时间
- 2015-5-8
- 帖子
- 866
|
7楼
楼主 |
发表于 2021-8-9 04:30:07
|
只看该作者
本帖最后由 taeckle 于 2021-8-9 04:43 编辑
问题解决了, 根本就不是Window_Command和Window_Selectable的问题, 只要在Window_Command类中把那个def draw_item还有def initialize 改成这样:
def initialize(width, commands,type = 0)
@type = type
# 由命令的个数计算出窗口的高
case type
when 0 #默认的纵版界面设置
super(0, 0, width, commands.size * 32 + 32)
@column_max = 1
when 1
super(0, 0, width, 400)
@column_max = [commands.size,8].min #横版的主菜单栏界面设置
when 2
super(0, 0, width*1, 400)
@column_max = [commands.size,8].min #横版的存储箱界面设置
end
@item_max = commands.size
@commands = commands
case type
when 0
self.contents = Bitmap.new(width - 32, @item_max * 32)
when 1
self.contents = Bitmap.new(width - 32, @item_max * 32)
when 2
self.contents = Bitmap.new(width - 32, @item_max * 32)
end
refresh
self.index = 0
end
def draw_item(index, color, size= 22)
self.contents.font.color = color
self.contents.font.size = size
if $scene.is_a?(Scene_Menu)
rect = Rect.new(76 * index + 5, 0, 80, 28) #横版的主菜单栏界面
elsif $scene.is_a?(Scene_Storage)
rect = Rect.new(160 * index + 22, 0, 80, 28) #横版的存储箱界面
else
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32) #默认的纵版界面
end
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index])
end
然后在我一楼class Scene_Storage脚本里的def update下面紧接着添加一句"@commands.update"后左右键就起作用了:
def update
@commands.update
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 切换的地图画面
$scene = Scene_Map.new
return
end
end
|
|