Project1

标题: 如何让一个Sprite闪烁 [打印本页]

作者: hitlerson    时间: 2008-6-12 08:11
标题: 如何让一个Sprite闪烁
@white = RPG::Sprite.new(@vp)
@white.bitmap = Bitmap.new(200,480)
@white.bitmap.fill_rect(0,0,200,480,Color.new(255,255,255,100))
@white.flash(Color.new(255,5,255,255), 20)

update里
@white.update

变过去就不边回来了,怎么让他闪? [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 灯笼菜刀王    时间: 2008-6-12 08:12
应该用循环吧?
作者: hitlerson    时间: 2008-6-12 08:42
update 里做了 @sprite.update了
每桢都刷新
作者: 风无痕    时间: 2008-6-12 08:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: hitlerson    时间: 2008-6-12 18:54
想要的是让他持续闪,象window_selectable那样
whiten 和 blink_on 这几个的用法不是很清楚

以下引用风无痕于2008-6-12 0:56:17的发言:

是每桢刷新,但是只是从255.255.255渐变为255.5.255这段而已吧?你没设置从255.5.255变回去的命令~~让这两个命令循环就可以闪了嘛。


不会要象
case i
when 1
.......color(0,0,0,0,0)
i = 2
when 2
.......color(0,0,0,0,255)
i = 1
end
这么麻烦吧?

不是有个.whiten   就是update里加.whiten没反应,.whiten == 0 又不能赋值,不知道怎么用
作者: link006007    时间: 2008-6-12 19:32
只要是继承与RPG::Sprite的精灵, 闪烁就很简单
  def initialize
    ... ...
    @flashPeriod = 20                 # 闪烁周期 (帧数)
    self.color.set(255, 0, 0, 128)    # 闪烁颜色
    ... ...
  end
  def update
     super
     ... ...
     if @flashPeriod > 0
      @flashPeriod -= 1
      self.color.alpha = 128 - (16 - @flashPeriod) * 10
      if (0 == @flashPeriod)
        @flashPeriod = 20
      end      
    end
    ... ...
  end

上面的代码来至 F1 帮助文档

flash 只闪烁一次。。。 可能要建立一个变量跟踪它, 不是很清楚{/gg}
def ini。。。
   @period = 20
   self.flash(color, @period)
end
def update
   @period -= 1
   if (0 == @period)
     @period = 20     
     self.flash(color, @period)
   end   
end   好像很麻烦{/gg}
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: hitlerson    时间: 2008-6-14 01:57
那还是很烦啊,还以为一个.whtien就能闪了
作者: 灯笼菜刀王    时间: 2008-6-14 03:42
禾西在技术区发布了一个新脚本,好象就是这类的,去找找,最近而已。
作者: hitlerson    时间: 2008-6-14 18:29
以下引用灯笼菜刀王于2008-6-13 19:42:48的发言:

禾西在技术区发布了一个新脚本,好象就是这类的,去找找,最近而已。


他那个是做LOOP动画的,我只是想让他和选择框那样闪烁,如果没有简单的办法,只好写一大段代码了
作者: jbfc    时间: 2008-6-14 19:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: link006007    时间: 2008-6-14 19:39
基本上所有的闪烁都是一次的
RM RPG::Sprite也是用变量跟踪时间




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1