我目前想到的笨办法是把窗口皮肤改成透明,单独写一个绘制位图的方法,跟Window_Message每次对窗口皮肤的调用绑定在一起,每次对话让它出现在底层达到背景的效果
但写出来之后这个图片一进游戏就存在,永远不消失...也不知道是哪里出了问题
[pre lang="ruby"]module Cache
def self.WindowSkinImage(filename)
load_bitmap("Graphics/System/", filename)
end
end
class Window_Message < Window_Base
alias x20150809_initialize initialize
def initialize
x20150809_initialize
create_DIY_sprite
end
def create_DIY_sprite
@DIYBack_sprite = Sprite.new
@DIYBack_sprite.bitmap = Cache.WindowSkinImage("Chip_Location"#素材文件名)
end
alias x20150809_dispose dispose
def dispose
x20150809_dispose
dispose_DIY_sprite
end
def dispose_DIY_sprite
@DIYBack_sprite.dispose
end
end[/pre]
上面代码中大小位置什么的还没设定,请大家看看是什么导致它不是随着对话窗出现而出现的
即使 window 被隐藏了,@DIYBack_sprite 也没有被隐藏啊。
你可以试试
[pre lang="ruby"]
class Window_Message < Window_Base
def visible= v
super
@DIYBack_sprite.visible = v
end
def initialize
create_DIY_sprite # 在前面调用,防止原来初始化时隐藏了窗口
x20150809_initialize
end
end
[/pre]