加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
还是昨天的问题。是想做到“能在选择时看到奖励物品的属性”并且“选择后获得物品”;
昨天纠结了一天今天发现好像跟shop的window有点类似就拿shopbuy来改,结果改得是一头雾水
我的Scene部分是这么写的
class Scene_Chooseaward < Scene_MenuBase def start creat_choose_window super end def creat_choose_window @choose_window=Window_Chooseaward.new(0,0,200,100) @choose_window.set_handler(:ok,method(:gain_ok)) @choose_window.set_handler(:cancel,method(:return_scene)) end def gain_ok $game_party.gain_item(item,1) return_scene end end
class Scene_Chooseaward < Scene_MenuBase
def start
creat_choose_window
super
end
def creat_choose_window
@choose_window=Window_Chooseaward.new(0,0,200,100)
@choose_window.set_handler(:ok,method(:gain_ok))
@choose_window.set_handler(:cancel,method(:return_scene))
end
def gain_ok
$game_party.gain_item(item,1)
return_scene
end
end
然后Window_Chooseaward就是选择性抄改Window_ShopBuy
class Window_Chooseaward < Window_Selectable def initialize(x, y, width, height) super refresh end def refresh make_item_list create_contents draw_all_items end def item_max @data ? @data.size : 1 end def item @data[index] end def make_item_list @data = [] item = $data_weapons[1] #其实我希望这里的道具种类和ID能通过参数指定,但不知道怎么写 @data.push(item) end def draw_item(index) item = @data[index] rect = item_rect(index) draw_item_name(item, rect.x, rect.y) rect.width -= 4 end end
class Window_Chooseaward < Window_Selectable
def initialize(x, y, width, height)
super
refresh
end
def refresh
make_item_list
create_contents
draw_all_items
end
def item_max
@data ? @data.size : 1
end
def item
@data[index]
end
def make_item_list
@data = []
item = $data_weapons[1] #其实我希望这里的道具种类和ID能通过参数指定,但不知道怎么写
@data.push(item)
end
def draw_item(index)
item = @data[index]
rect = item_rect(index)
draw_item_name(item, rect.x, rect.y)
rect.width -= 4
end
end
进去终于显示出物品了,但是背景是全黑的,而且无论是选择物品还是Esc窗口都没有反应,return_scene完全不起作用...
这中间还发生了许多我无法理解的乱七八糟的bug,说来全是泪,已经快崩溃了。
所以谁能解释一下这是为什么,再告诉我到底要怎样做这个窗口? |