Project1

标题: 想制作标题上的眨眼效果,请问怎么做到固定时间循环一... [打印本页]

作者: 吃麦子    时间: 2017-5-2 12:18
标题: 想制作标题上的眨眼效果,请问怎么做到固定时间循环一...
动画的循环我已经做出来了。。。脚本不是特别会。。连蒙带猜地写出了循环,但是不知道要怎么固定间隔时间。。希望有人能帮帮我。。。谢谢。。

脚本大概这个样子
class Sprite_yisong < Sprite_Base
       include MK::MK_Title
       def initialize(viewport=nil)
         @timer=0
         @wait=0
         
         
         super(viewport)
            @yisong=Sprite.new
            @yisong.bitmap=Bitmap.new(65,161)
            @yisong.y=70
        #初始化图片
       end
#更新
        def update
         
         
         @wait+=1  
         @timer+=1 if @wait%10==0
         update_yisong
      
         end
       end
#更新图片
       def update_yisong
         
         @yisong.bitmap.clear
         bmp=Cache.mk_title(GRAPHICS[1])
         rect=Rect.new(@timer%4*bmp.width/4,0,bmp.width/4,bmp.height)
         
         @yisong.bitmap.blt(0,0,bmp,rect)
         
       end
      
end



然后在后面的场景类里
update方法里面调用了更新

然后会不断循环,我想要间隔时间循环一次。。。试了几个思路都不太行。。。
     




作者: 喵呜喵5    时间: 2017-5-2 12:46
仅提供一个简单的思路:
  1. def initialize(viewport=nil)
  2.   # 各种初始化balabalabala
  3.   # 初始化状态机
  4.   @next_state_change_time = 0 # 距离下一次状态切换剩余时间
  5.   @state = 0                  # 当前角色眼睛所在状态
  6. end

  7. def update
  8.   # 各种更新balabalabala
  9.   # 刷新下一次切换状态的剩余时间
  10.   @next_state_change_time -= 1
  11.   # 时间到时,切换状态
  12.   update_blink if @next_state_change_time < 0
  13. end

  14. def update_blink
  15.   # 更新眨眼的图片balabalabala
  16.   # 设置当前的状态以及下一次切换状态的时间
  17.   case @state
  18.   when 0 then @state, @next_state_change_time = 1, 120
  19.   when 1 then @state, @next_state_change_time = 2, 20
  20.   when 2 then @state, @next_state_change_time = 3, 20
  21.   when 3 then @state, @next_state_change_time = 0, 360
  22.   end
  23. end
复制代码

作者: 吃麦子    时间: 2017-5-2 13:01
喵呜喵5 发表于 2017-5-2 12:46
仅提供一个简单的思路:

谢谢你!!
我去试试!




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