adiktuzmiko icon

Animated Title v1.00

adiktuzmiko | PRO | 10/07/14 06:45:38 AM UTC | 0 ⭐ | 479 👁️ | Never ⏰ | []
Ruby |

6.28 KB

|

None

|

0 👍

/

0 👎

=begin
 ==============================================================================
 
 Animated Title v1.00
 by AdiktuzMiko
 --- Date Created: 10/07/2014
 --- Last Date Updated: 10/07/2014
 --- Level: Easy
 
 ==============================================================================
 Overview
 ==============================================================================
 
 This script provides the ability to add pictures on the title screen
 that could be animated.
 
 ==============================================================================
 Set-Up
 ==============================================================================
 
 Just put this script into a blank slot above main but below materials
 (see compatibility section) and modify the settings below
 
 ==============================================================================
 Compatibility
 ==============================================================================
 
 This script aliases Scene_Titles' start and terminate method. It also
 defines the update method for Scene_Title
 
 ==============================================================================
 Terms and Conditions
 ==============================================================================
 
 View it here: http://lescripts.wordpress.com/terms-and-conditions/
 
 ==============================================================================
=end
 
module ADIK
  module ANIMATED_TITLE
    
    LIST = {} #Important, Do not delete!
    
    #Pictures should be inside the Graphics\Pictures folder of your game
    #List down the pictures here and their initial setup
    #x,y,w,h,filename,opacity,z
    LIST[0] = [0,0,200,200,"Window.png",255,1]
    
    ANIMATE = {} #Important, Do not delete!
    
    #List down here the final settings of the picture
    #time => time required to finish one animation
    #reverse => reverse the animation once it finishes?
    #loop => will the animation loop once it finishes?
    # if reverse and loop is both true, it will only loop
    # after the reverse
    #x,y,w,h,opacity,time,reverse,loop
    ANIMATE[0] = [400,0,200,200,255,120,true,true]
  end
end
 
# ==============================================================================
# DO NOT EDIT BELOW THIS LINE
# ==============================================================================
 
class Scene_Title
  
  alias start_anim_title_adik start
  def start
    start_anim_title_adik
    @pic_list = []
    ADIK::ANIMATED_TITLE::LIST.each do |key,value|
      @pic_list[key] = []
      @pic_list[key][0] = Sprite.new
      @pic_list[key][0].z = value[6]
      @pic_list[key][0].bitmap = Bitmap.new(Graphics.width,Graphics.height)
      bit = Cache.picture(value[4])
      from_rect = Rect.new(0,0,bit.width,bit.height)
      dest_rect = Rect.new(value[0],value[1],value[2],value[3])
      @pic_list[key][0].bitmap.stretch_blt(dest_rect,bit,from_rect,value[5])
      @pic_list[key][1] = value[0]
      @pic_list[key][2] = value[1]
      @pic_list[key][3] = value[2]
      @pic_list[key][4] = value[3]
      @pic_list[key][5] = value[5]
    end
    @animate = []
    ADIK::ANIMATED_TITLE::ANIMATE.each do |key,value|
      @animate[key] = []
      @animate[key][0] = value[0] - ADIK::ANIMATED_TITLE::LIST[key][0]
      @animate[key][1] = value[1] - ADIK::ANIMATED_TITLE::LIST[key][1]
      @animate[key][2] = value[2] - ADIK::ANIMATED_TITLE::LIST[key][2]
      @animate[key][3] = value[3] - ADIK::ANIMATED_TITLE::LIST[key][3]
      @animate[key][4] = value[4] - ADIK::ANIMATED_TITLE::LIST[key][5]
      @animate[key][5] = value[6]
      @animate[key][10] = value[7]
      @animate[key][0] /= value[5]
      @animate[key][1] /= value[5]
      @animate[key][2] /= value[5]
      @animate[key][3] /= value[5]
      @animate[key][4] /= value[5]
      @animate[key][7] = false
      @animate[key][8] = 0
      @animate[key][9] = value[5]
    end
  end
  
  def update
    super
    @animate.each_index do |key|
      next if @animate[key].nil?
      if @animate[key][7]
        if @animate[key][8] == 0
          @animate[key][7] = false if @animate[key][10]
          next
        end
        @pic_list[key][0].bitmap.clear
        bit = Cache.picture(ADIK::ANIMATED_TITLE::LIST[key][4])
        @pic_list[key][1] -= @animate[key][0]
        @pic_list[key][2] -= @animate[key][1]
        @pic_list[key][3] -= @animate[key][2]
        @pic_list[key][4] -= @animate[key][3]
        @pic_list[key][5] -= @animate[key][4]
        from_rect = Rect.new(0,0,bit.width,bit.height)
        dest_rect = Rect.new(@pic_list[key][1],@pic_list[key][2],@pic_list[key][3],@pic_list[key][4])
        @pic_list[key][0].bitmap.stretch_blt(dest_rect,bit,from_rect,@pic_list[key][5])
        @animate[key][8] -= 1
      else
        if @animate[key][8] == @animate[key][9]
          if @animate[key][5]
            @animate[key][7] = true 
            next
          else
            #only process loop if reverse is false
            if @animate[key][10]
              @pic_list[key][1] = ADIK::ANIMATED_TITLE::LIST[key][0]
              @pic_list[key][2] = ADIK::ANIMATED_TITLE::LIST[key][1]
              @pic_list[key][3] = ADIK::ANIMATED_TITLE::LIST[key][2]
              @pic_list[key][4] = ADIK::ANIMATED_TITLE::LIST[key][3]
              @pic_list[key][5] = ADIK::ANIMATED_TITLE::LIST[key][5]
              @animate[key][8] = 0
            else
              next
            end
          end
        end
        @pic_list[key][0].bitmap.clear
        bit = Cache.picture(ADIK::ANIMATED_TITLE::LIST[key][4])
        @pic_list[key][1] += @animate[key][0]
        @pic_list[key][2] += @animate[key][1]
        @pic_list[key][3] += @animate[key][2]
        @pic_list[key][4] += @animate[key][3]
        @pic_list[key][5] += @animate[key][4]
        from_rect = Rect.new(0,0,bit.width,bit.height)
        dest_rect = Rect.new(@pic_list[key][1],@pic_list[key][2],@pic_list[key][3],@pic_list[key][4])
        @pic_list[key][0].bitmap.stretch_blt(dest_rect,bit,from_rect,@pic_list[key][5])
        @animate[key][8] += 1
      end
    end
  end
  
  alias terminate_anim_title_adik terminate
  def terminate
    unless @pic_list.nil?
      @pic_list.each {|pic| pic[0].dispose}
    end
    terminate_anim_title_adik
  end
  
end

Comments