设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1694|回复: 7
打印 上一主题 下一主题

[已经解决] 内容透明度的问题

[复制链接]
菜鸟飞呀飞 该用户已被删除
跳转到指定楼层
1
发表于 2010-7-30 15:57:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2010-7-28
帖子
36
2
发表于 2010-7-30 16:27:41 | 只看该作者
搭车问怎么更改窗口透明度……
天干宝典乙卷里有个半透明显示窗口的……搞了N多行脚本的说……
于是我只是想把比如商店的窗口改成半透明。。。。
回复 支持 反对

使用道具 举报

菜鸟飞呀飞 该用户已被删除
3
 楼主| 发表于 2010-7-30 16:29:31 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6850
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

4
发表于 2010-7-30 16:31:49 | 只看该作者
自己在窗口对象里内置个sprite对象用来描绘你需要局部透明的内容











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2010-7-28
帖子
36
5
发表于 2010-7-30 16:37:40 | 只看该作者
回复 菜鸟飞呀飞 的帖子
谢谢啦~我在发现shop也是有scene的……(这个表述为何如此别扭……)
于是在半透明菜单里加上,就可以了……


   
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2010-7-28
帖子
36
6
发表于 2010-7-30 16:38:42 | 只看该作者
回复 菜鸟飞呀飞 的帖子
谢谢啦~我发现shop是有scene的……(好别扭的表述)
然后加到半透明菜单的脚本里就可以了……
希望LZ的问题能够得到回答哈!
回复 支持 反对

使用道具 举报

菜鸟飞呀飞 该用户已被删除
7
 楼主| 发表于 2010-7-30 16:43:43 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6850
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

8
发表于 2010-7-30 21:22:01 | 只看该作者
本帖最后由 后知后觉 于 2010-7-30 21:30 编辑

回复 菜鸟飞呀飞 的帖子
  1. class Window_HzhjStatus < Window_Base
  2.   attr_reader :sprite
  3.   def initialize
  4.     # 因为改变了窗口的 x= 和 y= 所以sprite和sprite.bitmap要在super前生成
  5.     # 不然会发生错误
  6.     @sprite = Sprite.new
  7.     @sprite.bitmap = Bitmap.new(96, 64)
  8.     super(80, 288, 544, 160)
  9.     self.contents = Bitmap.new(width - 32, height - 32)
  10.     # 修正sprite和窗口的一些关系
  11.     @sprite.x = self.x + self.width - @sprite.bitmap.width - 16
  12.     @sprite.y = self.y + 16
  13.     @sprite.z = self.z + 1
  14.     @sprite.opacity = self.contents_opacity
  15.     @sprite.visible = self.visible
  16.     refresh
  17.   end
  18.   def refresh
  19.     self.contents.clear
  20.     @sprite.bitmap.clear
  21.     self.contents.draw_text(0, 32, width-32, 32, "66RPG", 1)
  22.     @sprite.bitmap.draw_text(16, 16, 64, 32, "66rpg", 1)
  23.   end
  24.   def x=(value)
  25.     super(value)
  26.     @sprite.x = self.x + self.width - @sprite.bitmap.width - 16
  27.   end
  28.   def y=(value)
  29.     super(value)
  30.     @sprite.y = self.y + 16
  31.   end
  32.   def z=(value)
  33.     super(value)
  34.     @sprite.z = self.z + 1
  35.   end
  36.   def visible=(value)
  37.     super(value)
  38.     @sprite.visible = self.visible
  39.   end
  40.   def dispose
  41.     @sprite.bitmap.dispose
  42.     @sprite.dispose
  43.     super
  44.   end
  45.   def update
  46.     @sprite.update
  47.     super
  48.   end
  49.   def contents_opacity=(value)
  50.     super(value)
  51.     @sprite.opacity = self.contents_opacity
  52.   end
  53.   # 获取sprite的不透明度
  54.   def sprite_opacity
  55.     return @sprite.opacity
  56.   end
  57.   # 更改sprite的不透明度
  58.   def sprite_opacity=(value)
  59.     @sprite.opacity = value
  60.   end
  61. end
复制代码
sprite的bitmap大小和与窗口的位置关系就自己改吧...
对这个类的实例对象调用 sprite_opacity = xxx
可以改变sprite的opacity

点评

研究看看  发表于 2010-7-30 22:09

评分

参与人数 1星屑 +300 收起 理由
「旅」 + 300 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-2 17:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表