赞 | 0 |
VIP | 6 |
好人卡 | 2 |
积分 | 1 |
经验 | 11495 |
最后登录 | 2016-8-28 |
在线时间 | 302 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 302 小时
- 注册时间
- 2013-10-14
- 帖子
- 108
|
场景类是指Scene_Xxx吗……我翻了一下脚本,管理图片的类应该是Sprite_Picture才对。你想要改透明度的话,应当修改其中的update
- #==============================================================================
- # ■ Sprite_Picture
- #------------------------------------------------------------------------------
- # 显示图片用的活动块。Game_Picture 类的实例监视、
- # 活动块状态的自动变化。
- #==============================================================================
- class Sprite_Picture < Sprite
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # viewport : 显示端口
- # picture : 图片 (Game_Picture)
- #--------------------------------------------------------------------------
- def initialize(viewport, picture)
- super(viewport)
- @picture = picture
- update
- end
- #--------------------------------------------------------------------------
- # ● 释放
- #--------------------------------------------------------------------------
- def dispose
- if self.bitmap != nil
- self.bitmap.dispose
- end
- super
- end
- #--------------------------------------------------------------------------
- # ● 更新画面
- #--------------------------------------------------------------------------
- def update
- super
- # 图片的文件名与当前的情况有差异的情况下
- if @picture_name != @picture.name
- # 将文件名记忆到实例变量
- @picture_name = @picture.name
- # 文件名不为空的情况下
- if @picture_name != ""
- # 获取图片图形
- self.bitmap = RPG::Cache.picture(@picture_name)
- end
- end
-
- if @picture_name == "QQ" #——这是需要改透明度的图片的名字
- if self.opacity % 2 == 1
- self.opacity -= 2
- else
- self.opacity += 2
- end
- else
- self.opacity = @picture.opacity #——这是从77行移动过来的
- end
-
- # 文件名是空的情况下
- if @picture_name == ""
- # 将活动块设置为不可见
- self.visible = false
- return
- end
- # 将活动块设置为可见
- self.visible = true
- # 设置传送原点
- if @picture.origin == 0
- self.ox = 0
- self.oy = 0
- else
- self.ox = self.bitmap.width / 2
- self.oy = self.bitmap.height / 2
- end
- # 设置活动块的坐标
- self.x = @picture.x
- self.y = @picture.y
- self.z = @picture.number
- # 设置放大率、不透明度、合成方式
- self.zoom_x = @picture.zoom_x / 100.0
- self.zoom_y = @picture.zoom_y / 100.0
- #self.opacity = @picture.opacity #——移动到51行
- self.blend_type = @picture.blend_type
- # 设置旋转角度、色调
- self.angle = @picture.angle
- self.tone = @picture.tone
- end
- end
复制代码 (上面有改动的都标记了 #—— )
这里写得比较简单,用了一个 if self.opacity % 2 == 1 就能判断opacity是+还是-。这是因为opacity只能设定在0~255。最初设定为255,-2后的opacity都是奇数。到了1时-2会被调整为0,所以就变成偶数……
当然如果要改变变化的速度的话,这个2就要改变,也要考虑能否满足我这个偷懒的写法了。
(说的比较啰嗦,看不懂就用下面那个方法吧)
比较正常的写法是,在initialize建立一个@xxx来记录true或false。是true就减小,false反之 |
评分
-
查看全部评分
|