Project1
标题:
内容透明度的问题
[打印本页]
作者:
菜鸟飞呀飞
时间:
2010-7-30 15:57
提示:
作者被禁止或删除 内容自动屏蔽
作者:
htx1219
时间:
2010-7-30 16:27
搭车问怎么更改窗口透明度……
天干宝典乙卷里有个半透明显示窗口的……搞了N多行脚本的说……
于是我只是想把比如商店的窗口改成半透明。。。。
作者:
菜鸟飞呀飞
时间:
2010-7-30 16:29
提示:
作者被禁止或删除 内容自动屏蔽
作者:
后知后觉
时间:
2010-7-30 16:31
自己在窗口对象里内置个sprite对象用来描绘你需要局部透明的内容
作者:
htx1219
时间:
2010-7-30 16:37
回复
菜鸟飞呀飞
的帖子
谢谢啦~我在发现shop也是有scene的……(这个表述为何如此别扭……)
于是在半透明菜单里加上,就可以了……
作者:
htx1219
时间:
2010-7-30 16:38
回复
菜鸟飞呀飞
的帖子
谢谢啦~我发现shop是有scene的……(好别扭的表述)
然后加到半透明菜单的脚本里就可以了……
希望LZ的问题能够得到回答哈!
作者:
菜鸟飞呀飞
时间:
2010-7-30 16:43
提示:
作者被禁止或删除 内容自动屏蔽
作者:
后知后觉
时间:
2010-7-30 21:22
本帖最后由 后知后觉 于 2010-7-30 21:30 编辑
回复
菜鸟飞呀飞
的帖子
class Window_HzhjStatus < Window_Base
attr_reader :sprite
def initialize
# 因为改变了窗口的 x= 和 y= 所以sprite和sprite.bitmap要在super前生成
# 不然会发生错误
@sprite = Sprite.new
@sprite.bitmap = Bitmap.new(96, 64)
super(80, 288, 544, 160)
self.contents = Bitmap.new(width - 32, height - 32)
# 修正sprite和窗口的一些关系
@sprite.x = self.x + self.width - @sprite.bitmap.width - 16
@sprite.y = self.y + 16
@sprite.z = self.z + 1
@sprite.opacity = self.contents_opacity
@sprite.visible = self.visible
refresh
end
def refresh
self.contents.clear
@sprite.bitmap.clear
self.contents.draw_text(0, 32, width-32, 32, "66RPG", 1)
@sprite.bitmap.draw_text(16, 16, 64, 32, "66rpg", 1)
end
def x=(value)
super(value)
@sprite.x = self.x + self.width - @sprite.bitmap.width - 16
end
def y=(value)
super(value)
@sprite.y = self.y + 16
end
def z=(value)
super(value)
@sprite.z = self.z + 1
end
def visible=(value)
super(value)
@sprite.visible = self.visible
end
def dispose
@sprite.bitmap.dispose
@sprite.dispose
super
end
def update
@sprite.update
super
end
def contents_opacity=(value)
super(value)
@sprite.opacity = self.contents_opacity
end
# 获取sprite的不透明度
def sprite_opacity
return @sprite.opacity
end
# 更改sprite的不透明度
def sprite_opacity=(value)
@sprite.opacity = value
end
end
复制代码
sprite的bitmap大小和与窗口的位置关系就自己改吧...
对这个类的实例对象调用 sprite_opacity = xxx
可以改变sprite的opacity
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1