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

Project1

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

[已经解决] 如何让图片闪烁起来

[复制链接]

Lv2.观梦者

梦石
0
星屑
380
在线时间
602 小时
注册时间
2014-5-8
帖子
699
跳转到指定楼层
1
发表于 2014-5-11 21:30:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 布罗利 于 2014-5-11 21:41 编辑

如题,就是让一张图片一闪一闪的,就是改不透明度,从255到0 反复循环,写在场景类的脚本里,可是我改了好多次都不行,到底应该怎么写呢?@天地有正气

Lv1.梦旅人

梦石
0
星屑
50
在线时间
302 小时
注册时间
2013-10-14
帖子
108
2
发表于 2014-5-24 22:46:20 | 只看该作者
场景类是指Scene_Xxx吗……我翻了一下脚本,管理图片的类应该是Sprite_Picture才对。你想要改透明度的话,应当修改其中的update


  1. #==============================================================================
  2. # ■ Sprite_Picture
  3. #------------------------------------------------------------------------------
  4. #  显示图片用的活动块。Game_Picture 类的实例监视、
  5. # 活动块状态的自动变化。
  6. #==============================================================================

  7. class Sprite_Picture < Sprite
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对像
  10.   #     viewport : 显示端口
  11.   #     picture  : 图片 (Game_Picture)
  12.   #--------------------------------------------------------------------------
  13.   def initialize(viewport, picture)
  14.     super(viewport)
  15.     @picture = picture
  16.     update
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 释放
  20.   #--------------------------------------------------------------------------
  21.   def dispose
  22.     if self.bitmap != nil
  23.       self.bitmap.dispose
  24.     end
  25.     super
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 更新画面
  29.   #--------------------------------------------------------------------------
  30.   def update
  31.     super
  32.     # 图片的文件名与当前的情况有差异的情况下
  33.     if @picture_name != @picture.name
  34.       # 将文件名记忆到实例变量
  35.       @picture_name = @picture.name
  36.       # 文件名不为空的情况下
  37.       if @picture_name != ""
  38.         # 获取图片图形
  39.         self.bitmap = RPG::Cache.picture(@picture_name)
  40.       end
  41.     end
  42.    
  43.     if @picture_name == "QQ" #——这是需要改透明度的图片的名字
  44.       if self.opacity % 2 == 1
  45.         self.opacity -= 2
  46.       else
  47.         self.opacity += 2
  48.       end
  49.     else
  50.       self.opacity = @picture.opacity #——这是从77行移动过来的
  51.     end
  52.    
  53.     # 文件名是空的情况下
  54.     if @picture_name == ""
  55.       # 将活动块设置为不可见
  56.       self.visible = false
  57.       return
  58.     end
  59.     # 将活动块设置为可见
  60.     self.visible = true
  61.     # 设置传送原点
  62.     if @picture.origin == 0
  63.       self.ox = 0
  64.       self.oy = 0
  65.     else
  66.       self.ox = self.bitmap.width / 2
  67.       self.oy = self.bitmap.height / 2
  68.     end
  69.     # 设置活动块的坐标
  70.     self.x = @picture.x
  71.     self.y = @picture.y
  72.     self.z = @picture.number
  73.     # 设置放大率、不透明度、合成方式
  74.     self.zoom_x = @picture.zoom_x / 100.0
  75.     self.zoom_y = @picture.zoom_y / 100.0
  76.     #self.opacity = @picture.opacity #——移动到51行
  77.     self.blend_type = @picture.blend_type
  78.     # 设置旋转角度、色调
  79.     self.angle = @picture.angle
  80.     self.tone = @picture.tone
  81.   end
  82. end
复制代码
(上面有改动的都标记了 #—— )
这里写得比较简单,用了一个 if self.opacity % 2 == 1 就能判断opacity是+还是-。这是因为opacity只能设定在0~255。最初设定为255,-2后的opacity都是奇数。到了1时-2会被调整为0,所以就变成偶数……
当然如果要改变变化的速度的话,这个2就要改变,也要考虑能否满足我这个偷懒的写法了。
(说的比较啰嗦,看不懂就用下面那个方法吧)

比较正常的写法是,在initialize建立一个@xxx来记录true或false。是true就减小,false反之

评分

参与人数 1星屑 +120 收起 理由
天地有正气 + 120 认可答案

查看全部评分

战斗才是生命的意义!0w0
回复 支持 反对

使用道具 举报

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

3
发表于 2014-5-25 12:40:13 | 只看该作者
为防止脚本出错,首先@sprite
  1. @sprite = RPG::Sprite.new
  2. @sprite.bitmap = RPG::Cache.battler("001-Fighter01",0)

  3. loop do
  4.   @sprite.update
  5.   @sprite.blink_on
  6.   Graphics.update
  7. end  
复制代码
应该是这种效果吧?

场景类里就是在Main里生成RPG::Sprite的实例并指定bitmap。
然后update方法里面写
@sprite.update
@sprite.blink_on
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 00:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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