Guest User

Untitled

a guest
Aug 20th, 2013
707
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #==============================================================================
  2. # ** Sprite_MenuBack
  3. #------------------------------------------------------------------------------
  4. #  This sprite is used to display sprites behind menus
  5. #==============================================================================
  6.  
  7.  
  8. class Sprite_MenuBack < Sprite_Base
  9.  
  10.   attr_reader   :ID                    # reference ID
  11.   #--------------------------------------------------------------------------
  12.   # * Object Initialization
  13.   #     picture : Game_Picture
  14.   #--------------------------------------------------------------------------
  15.   def initialize(x,y,name,alpha,myID="not given")
  16.     @name = name
  17.     @x=x
  18.     @y=y
  19.     @targx=x
  20.     @targy=y
  21.     @alpha=alpha
  22.     @targa=alpha
  23.     @duration=0
  24.     @shake_duration=-1
  25.     @shake_x_severity=0
  26.     @shake_y_severity=0
  27.     @shake_ox=x
  28.     @shake_oy=y
  29.     @ID = myID
  30.     @origin =0
  31.     @tone = Tone.new
  32.     @hue = 0
  33.     update
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # * Free
  37.   #--------------------------------------------------------------------------
  38.   def dispose
  39.     printf "disposed of?\n"
  40.     bitmap.dispose if bitmap
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # * Frame Update
  44.   #--------------------------------------------------------------------------
  45.   def update
  46.     update_bitmap
  47.     update_origin
  48.     update_position
  49.     update_shake
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # * Update Transfer Origin Bitmap
  53.   #--------------------------------------------------------------------------
  54.   def update_bitmap
  55.     if @name==""
  56.       @bitmap = nil
  57.     else
  58.       @bitmap = Cache.battler(@name,@hue)
  59.     end
  60.     @rect=Rect.new(0,0,@bitmap.width,@bitmap.height)
  61.   end
  62.  
  63.   #--------------------------------------------------------------------------
  64.   # * Update Origin
  65.   #--------------------------------------------------------------------------
  66.   def update_origin
  67.     #if @origin == 0
  68.     #  self.ox = 0
  69.     #  self.oy = 0
  70.     #else
  71.     #  self.ox = @cropped.width / 2
  72.     #  self.oy = @cropped.height / 2
  73.     #end
  74.   end
  75.  
  76.   #--------------------------------------------------------------------------
  77.   # * Update Position
  78.   #--------------------------------------------------------------------------
  79.   def update_position
  80.     return if @duration == 0
  81.     d = @duration
  82.     @x = (@x * (d - 1) + @targx) / d.to_f
  83.     @y = (@y * (d - 1) + @targy) / d.to_f
  84.     @alpha = (@alpha * (d - 1) + @targa) / d.to_f
  85.     @duration -= 1
  86.   end
  87.  
  88.   def update_shake
  89.     if @shake_duration == 0
  90.       @x=@shake_ox
  91.       @y=@shake_oy
  92.       @shake_duration -= 1
  93.       return
  94.     end
  95.     return if @shake_duration == -1
  96.     d = @shake_duration
  97.     @x = @shake_ox+(-@shake_x_severity + (1+rand(@shake_x_severity*2)))
  98.     @y = @shake_oy+(-@shake_y_severity + (1+rand(@shake_y_severity*2)))
  99.     @shake_duration -= 1
  100.   end
  101.  
  102.   def set_shake(x,y,d)
  103.     @shake_ox=@x
  104.     @shake_oy=@y
  105.     @shake_x_severity=x
  106.     @shake_y_severity=y
  107.     @shake_duration=d
  108.   end
  109.  
  110.   def set_target(x,y,a,d)
  111.     if d==0
  112.       @x=x
  113.       @y=y
  114.       @alpha=a
  115.     else
  116.       @targx=x
  117.       @targy=y
  118.       @targa=a
  119.     end
  120.     @duration=d
  121.     #printf "setting target of %s\n",@ID
  122.   end
  123.  
  124.   def blt_to_target(target)
  125.     target.blt(@x,@y,@bitmap,@rect,@alpha)
  126.   end
  127.  
  128. end
RAW Paste Data