本帖最后由 j433463 于 2013-4-7 11:17 编辑
或者,如果您觉得 Sprite.new 的方式比较好做,也可以这样做:
打开 Window_ItemList 脚本:- #--------------------------------------------------------------------------
- # ● 更新说明内容
- #--------------------------------------------------------------------------
- def update_help
- draw_itempic(item) #加这一行,描绘物品图
- @help_window.set_item(item)
- end
复制代码 然后在 Widnow_Base 中找个位置放这一段:- #--------------------------------------------------------------------------
- # ● 描绘物品
- #--------------------------------------------------------------------------
- def draw_itempic(item)
- return if item == nil
- @itempic_sprite.dispose if @itempic_sprite != nil #这一行判断若 @itempic_sprite 已建立则 dispose 它
- @itempic_sprite = Sprite.new
- @itempic_sprite.bitmap = Cache.load_bitmap("Graphics/Items/", "item_#{item.id.to_s}") #依照 item.id 去读取 Graphics/Items/ 目录下的图,如 item_3.png
- @itempic_sprite.x = 280
- @itempic_sprite.y = 160
- end
复制代码 这样子,我 ID 为 1 号的物品图就是 item_1.png,5 号就是 item_5.png,根本不会混淆,
如果您想用物品名称当作图档名,这也是可以的,把 item.id 改成 item.name,再把 item_#{item.id.to_s} 改成 item.name 而已。- #--------------------------------------------------------------------------
- # ● 描绘物品
- #--------------------------------------------------------------------------
- def draw_itempic(item)
- return if item == nil
- @itempic_sprite.dispose if @itempic_sprite != nil #这一行判断若 @itempic_sprite 已建立则 dispose 它
- @itempic_sprite = Sprite.new
- @itempic_sprite.bitmap = Cache.load_bitmap("Graphics/Items/", item.name) #依照 item.name 去读取 Graphics/Items/ 目录下的图
- @itempic_sprite.x = 280
- @itempic_sprite.y = 160
- end
复制代码 整个过程很简单的,不必要再 if 判断那么多,变得好复杂。
所以,您的方式只是:
def update_help @help_window.set_item(item) return if item == nil @itempic_sprite.dispose if @itempic_sprite != nil #这一行判断若 @itempic_sprite 已建立则 dispose 它 @start_1 = Sprite.new @start_1.bitmap = Bitmap.new("Graphics/Pictures/" + item.name) @start_1.x = 305 @start_1.y = 140 end
def update_help
@help_window.set_item(item)
return if item == nil
@itempic_sprite.dispose if @itempic_sprite != nil #这一行判断若 @itempic_sprite 已建立则 dispose 它
@start_1 = Sprite.new
@start_1.bitmap = Bitmap.new("Graphics/Pictures/" + item.name)
@start_1.x = 305
@start_1.y = 140
end
这样子,或者,您觉得您的档名不是按照 item 的 id 或 name 来的,那也大可以用一个阵列先把档名排好,再取用:
@itempic_name = [ "wider", "helpwater", "standet" ] def update_help @help_window.set_item(item) return if item == nil @itempic_sprite.dispose if @itempic_sprite != nil #这一行判断若 @itempic_sprite 已建立则 dispose 它 @start_1 = Sprite.new @start_1.bitmap = Bitmap.new("Graphics/Pictures/" + @itempic_name[item.id]) @start_1.x = 305 @start_1.y = 140 end
@itempic_name = [
"wider",
"helpwater",
"standet"
]
def update_help
@help_window.set_item(item)
return if item == nil
@itempic_sprite.dispose if @itempic_sprite != nil #这一行判断若 @itempic_sprite 已建立则 dispose 它
@start_1 = Sprite.new
@start_1.bitmap = Bitmap.new("Graphics/Pictures/" + @itempic_name[item.id])
@start_1.x = 305
@start_1.y = 140
end
@itempic_name 预先设好,和 item.id 一致,那就直接以 item.id 取 @itempic_name[item.id] 的值,不就很容易解决了? |