Project1
标题:
怎么让这里的图片消失掉……?
[打印本页]
作者:
seasoneast
时间:
2010-8-12 15:33
标题:
怎么让这里的图片消失掉……?
本帖最后由 seasoneast 于 2010-8-14 17:09 编辑
自己修改了一下商店菜单,把Window_ShopStatus改成如下这样,在里面添加了一些图片,但是希望当光标移到道具时不显示图片,并且回到指令窗口时也让图片消失……请问该怎么改……?
#==============================================================================
# ■ Window_ShopStatus
#------------------------------------------------------------------------------
# 商店画面、显示物品所持数与角色装备的窗口。
#==============================================================================
class Window_ShopStatus < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
super(368, 160, 272, 320)
self.contents = Bitmap.new(width - 32, height - 32)
@item = nil
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
self.contents.clear
if @item == nil
return
end
case @item
when RPG::Item
number = $game_party.item_number(@item.id)
when RPG::Weapon
number = $game_party.weapon_number(@item.id)
when RPG::Armor
number = $game_party.armor_number(@item.id)
end
self.contents.font.color = system_color
self.contents.draw_text(4, 0, 200, 32, "所持数")
self.contents.font.color = normal_color
self.contents.draw_text(204, 0, 32, 32, number.to_s, 2)
if @item.is_a?(RPG::Item)
return
end
# 添加装备品信息
for i in 0...$game_party.actors.size
# 获取角色
actor = $game_party.actors[i]
@actor = actor
smile = @actor.character_name.to_s + "_smile"
normal = @actor.character_name.to_s + "_normal"
unable = @actor.character_name.to_s + "_X"
# 可以装备显示普通、不能装备显示红叉
if actor.equippable?(@item)
@sprite = Sprite.new
@sprite.bitmap = Bitmap.new("Graphics/Characters/#{normal}")
@sprite.x = 382+ 40*i
@sprite.y = 224
@sprite.z = 100
else
@sprite = Sprite.new
@sprite.bitmap = Bitmap.new("Graphics/Characters/#{unable}")
@sprite.x = 382+ 40 * i
@sprite.y = 224
@sprite.z = 100
end
# 获取当前的装备品
if @item.is_a?(RPG::Weapon)
item1 = $data_weapons[actor.weapon_id]
elsif @item.kind == 0
item1 = $data_armors[actor.armor1_id]
elsif @item.kind == 1
item1 = $data_armors[actor.armor2_id]
elsif @item.kind == 2
item1 = $data_armors[actor.armor3_id]
else
item1 = $data_armors[actor.armor4_id]
end
# 可以装备的情况
if actor.equippable?(@item)
# 武器的情况
if @item.is_a?(RPG::Weapon)
atk1 = item1 != nil ? item1.atk : 0
atk2 = @item != nil ? @item.atk : 0
change1 = atk2 - atk1
end
# 防具的情况
if @item.is_a?(RPG::Armor)
pdef1 = item1 != nil ? item1.pdef : 0
mdef1 = item1 != nil ? item1.mdef : 0
pdef2 = @item != nil ? @item.pdef : 0
mdef2 = @item != nil ? @item.mdef : 0
change2 = pdef2 - pdef1
change3 = mdef2 - mdef1
end
# 描绘能力值变化
if change1.to_i > 0 or change2.to_i > 0 or change3.to_i > 0
@sprite = Sprite.new
@sprite.bitmap = Bitmap.new("Graphics/Characters/#{smile}")
@sprite.x = 382+40*i
@sprite.y = 224
@sprite.z = 100
end
end
end
end
#--------------------------------------------------------------------------
# ● 设置物品
# item : 新的物品
#--------------------------------------------------------------------------
def item=(item)
if @item != item
@item = item
refresh
end
end
end
复制代码
现在的问题是图片不会消失……
作者:
小幽的马甲
时间:
2010-8-12 15:42
精灵释放了吗
作者:
seasoneast
时间:
2010-8-12 15:54
回复
小幽的马甲
的帖子
没有,就是想知道把它放在哪里合适,因为有试过一些,但是都有问题……
作者:
seasoneast
时间:
2010-8-12 19:48
3个多小时了……被无视了吗……自顶……
作者:
小幽的马甲
时间:
2010-8-12 20:24
def dispose
@sprite.dispose if @sprite != nil
super
end
复制代码
似乎是这样……不过为何要直接在Window里建Sprite= =
作者:
seasoneast
时间:
2010-8-12 20:41
回复
小幽的马甲
的帖子
我是希望在商店界面里通过图片显示当前装备是否会提高角色能力,但是图片不是无法消失就是会闪一下没了……所以来求助……
我试了一下,但是无论是放到initalize里还是refresh里都会出错误显示dispose window……
作者:
seasoneast
时间:
2010-8-13 12:57
再次自顶……
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1