VX 스크립트

#==============================================================================
# ■ Spriteset_Weather
#------------------------------------------------------------------------------
#  天候エフェクト (雨、嵐、雪) のクラスです。このクラスは Spriteset_Map クラ
# スの内部で使用されます。
#==============================================================================

$WEATHER_UPDATE = false   # the $WEATHER_IMAGES array has changed, please update
$WEATHER_IMAGES = []      # the array of picture names to use
$WEATHER_X = 0            # the number of pixels the image should move horizontally (positive = right, negative = left)
$WEATHER_Y = 0            # the number of pizels the image should move vertically (positive = down, negative = up)
$WEATHER_FADE = 0         # how much the image should fade each update (0 = no fade, 255 = fade instantly)
$WEATHER_ANIMATED = false # whether or not the image should cycle through all the images

# take these out if you are using my screen resolution script!
  HEIGHT = 416
  WIDTH = 544


class Spriteset_Weather
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_reader :type
  attr_reader :max
  attr_reader :ox
  attr_reader :oy
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(viewport = nil)
    @type = 0
    @max = 0
    @ox = 0
    @oy = 0
    
    @count = 0
    @current_pose = []
    @info = []
    @countarray = []
    
    make_bitmaps
    
    @sprites = []
    
    for i in 1..500
      sprite = Sprite.new(viewport)
      sprite.visible = false
      sprite.opacity = 0
      @sprites.push(sprite)
      @current_pose.push(0)
      @info.push(rand(50))
      @countarray.push(rand(15))
    end
    
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  def dispose
    for sprite in @sprites
      sprite.dispose
    end
    @rain_bitmap.dispose
    @storm_bitmap.dispose
    @snow_bitmap.dispose
    @hail_bitmap.dispose
    @petal_bitmap.dispose
    @blood_rain_bitmap.dispose
    for image in @autumn_leaf_bitmaps
      image.dispose
    end
    for image in @green_leaf_bitmaps
      image.dispose
    end
    for image in @rose_bitmaps
      image.dispose
    end
    for image in @feather_bitmaps
      image.dispose
    end
    for image in @sparkle_bitmaps
      image.dispose
    end
    for image in @user_bitmaps
      image.dispose
    end
    $WEATHER_UPDATE = true
  end
  #--------------------------------------------------------------------------
  # ● 天候タイプの設定
  #     type : 新しい天候タイプ
  #--------------------------------------------------------------------------
  def type=(type)
    return if @type == type
    @type = type
    case @type
    when 1
      bitmap = @rain_bitmap
    when 2
      bitmap = @storm_bitmap
    when 3
      bitmap = @snow_bitmap
   when 4 # hail
      bitmap = @hail_bitmap
    when 5 # rain w/ thunder and lightning
      bitmap = @rain_bitmap
      @thunder = true
    when 6 # falling autumn leaves
      bitmap = @autumn_leaf_bitmaps[0]
    when 7 # blowing autumn leaves
      bitmap = @autumn_leaf_bitmaps[0]
    when 8 # swirling autumn leaves
      bitmap = @autumn_leaf_bitmaps[0]
    when 9 # falling green leaves
      bitmap = @green_leaf_bitmaps[0]
    when 10 # sakura petals
      bitmap = @petal_bitmap
    when 11 # rose petals
      bitmap = @rose_bitmaps[0]
    when 12 # feathers
      bitmap = @feather_bitmaps[0]
    when 13 # blood rain
      bitmap = @blood_rain_bitmap
    when 14 # sparkles
      bitmap = @sparkle_bitmaps[0]
    when 15 # user-defined
        bitmap = @user_bitmaps[rand(@user_bitmaps.size)]
    when 16 # blowing snow
      bitmap = @snow_bitmap
    when 17 # meteors
      bitmap = @meteor_bitmap
    when 18 # falling ash
      bitmap = @ash_bitmaps[rand(@ash_bitmaps.size)]
    when 19 # bubbles
      bitmap = @bubble_bitmaps[rand(@bubble_bitmaps.size)]
    when 21 # sparkles up
      bitmap = @sparkle_bitmaps[0]
    else
      bitmap = nil
    end
    
    if @type != 5
      @thunder = false
    end
    
    for i in 0...@sprites.size
      sprite = @sprites[i]
      sprite.visible = (i <= @max)
      if @type == 19
        sprite.bitmap = @bubble_bitmaps[rand(@bubble_bitmaps.size)]
      elsif @type == 20
        sprite.bitmap = @bubble2_bitmaps[rand(@bubble2_bitmaps.size)]
      elsif @type == 3
        r = rand(@snow_bitmaps.size)
        @info[i] = r
        sprite.bitmap = @snow_bitmaps[r]
      else
        sprite.bitmap = bitmap
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 原点 X 座標の設定
  #     ox : 原点 X 座標
  #--------------------------------------------------------------------------
  def ox=(ox)
    return if @ox == ox;
    @ox = ox
    for sprite in @sprites
      sprite.ox = @ox
    end
  end
  #--------------------------------------------------------------------------
  # ● 原点 Y 座標の設定
  #     oy : 原点 Y 座標
  #--------------------------------------------------------------------------
  def oy=(oy)
    return if @oy == oy;
    @oy = oy
    for sprite in @sprites
      sprite.oy = @oy
    end
  end
  #--------------------------------------------------------------------------
  # ● スプライト最大数の設定
  #     max : スプライト最大数
  #--------------------------------------------------------------------------
  def max=(max)
    return if @max == max;
    @max = [[max, 0].max, 40].min
    for i in 1..40
      sprite = @sprites[i]
      sprite.visible = (i <= @max) if sprite != nil
      if @type == 19
          sprite.bitmap = @bubble_bitmaps[rand(@bubble_bitmaps.size)]
        elsif @type == 20
          sprite.bitmap = @bubble2_bitmaps[rand(@bubble2_bitmaps.size)]
        elsif @type == 3
          r = rand(@snow_bitmaps.size)
          @info[i] = r
          sprite.bitmap = @snow_bitmaps[r]
        end
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    return if @type == 0
    for i in 1..@max
      sprite = @sprites[i]
      if @type == 1 or @type == 5 or @type == 13 # rain
        if sprite.opacity <= 150
          if @current_pose[i] == 0
            sprite.y += @rain_bitmap.height
            sprite.x -= @rain_bitmap.width
            if @type == 1 or @type == 5
              sprite.bitmap = @rain_splash
            else
              sprite.bitmap = @blood_rain_splash
            end
            @current_pose[i] = 1
          end
        else
          if @current_pose[i] == 1
            if @type == 1 or @type == 5
              sprite.bitmap = @rain_bitmap
            else
              sprite.bitmap = @blood_rain_bitmap
            end
            @current_pose[i] = 0
          end
          sprite.x -= 2
          sprite.y += 16
          if @thunder and (rand(8000 - @max) == 0)
            $game_map.screen.start_flash(Color.new(255, 255, 255, 255), 5)
            Audio.se_play("Audio/SE/Thunder1")
          end
        end
        sprite.opacity -= 8
      end
      if @type == 2 # storm
        sprite.x -= 8
        sprite.y += 16
        sprite.opacity -= 12
      end
      if @type == 3 # snow
        case @info[i]
        when 0 # smallest flake, fall the slowest
          sprite.y += 1
        when 1
          sprite.y += 3
        when 2
          sprite.y += 5
        when 3
          sprite.y += 7
        end
        sprite.opacity -= 3
      end
      if @type == 4 # hail
        sprite.x -= 1
        sprite.y += 18
        sprite.opacity -= 15
      end
      if @type == 6 # falling autumn leaves
        @count = rand(20)
        if @count == 0
          sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]]
          @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size
        end
        sprite.x -= 1
        sprite.y += 1
      end
      if @type == 7 # blowing autumn leaves
        @count = rand(20)
        if @count == 0
          sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]]
          @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size
        end
        sprite.x -= 10
        sprite.y += (rand(4) - 2)
      end
      if @type == 8 # swirling autumn leaves
        @count = rand(20)
        if @count == 0
          sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]]
          @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size
        end
        if @info[i] != 0
          if @info[i] >= 1 and @info[i] <= 10
            sprite.x -= 3
            sprite.y -= 1
          elsif @info[i] >= 11 and @info[i] <= 16
            sprite.x -= 1
            sprite.y -= 2
          elsif @info[i] >= 17 and @info[i] <= 20
            sprite.y -= 3
          elsif @info[i] >= 21 and @info[i] <= 30
            sprite.y -= 2
            sprite.x += 1
          elsif @info[i] >= 31 and @info[i] <= 36
            sprite.y -= 1
            sprite.x += 3
          elsif @info[i] >= 37 and @info[i] <= 40
            sprite.x += 5
          elsif @info[i] >= 41 and @info[i] <= 46
            sprite.y += 1
            sprite.x += 3
          elsif @info[i] >= 47 and @info[i] <= 58
            sprite.y += 2
            sprite.x += 1
          elsif @info[i] >= 59 and @info[i] <= 64
            sprite.y += 3
          elsif @info[i] >= 65 and @info[i] <= 70
            sprite.x -= 1
            sprite.y += 2
          elsif @info[i] >= 71 and @info[i] <= 81
            sprite.x -= 3
            sprite.y += 1
          elsif @info[i] >= 82 and @info[i] <= 87
            sprite.x -= 5
          end
          @info[i] = (@info[i] + 1) % 88
        else
          if rand(200) == 0
            @info[i] = 1
          end
          sprite.x -= 5
          sprite.y += 1
        end
      end
      if @type == 9 # falling green leaves
        if @countarray[i] == 0
          @current_pose[i] = (@current_pose[i] + 1) % @green_leaf_bitmaps.size
          sprite.bitmap = @green_leaf_bitmaps[@current_pose[i]]
          @countarray[i] = rand(15)
        end
        @countarray[i] = (@countarray[i] + 1) % 15
        sprite.y += 1
      end
      if @type == 10 # sakura petals
        if @info[i] < 25
          sprite.x -= 1
        else
          sprite.x += 1
        end
        @info[i] = (@info[i] + 1) % 50
        sprite.y += 1
      end
      if @type == 11 # rose petals
        @count = rand(20)
        if @count == 0
          sprite.bitmap = @rose_bitmaps[@current_pose[i]]
          @current_pose[i] = (@current_pose[i] + 1) % @rose_bitmaps.size
        end
        if @info[i] % 2 == 0
          if @info[i] < 10
            sprite.x -= 1
          elsif
            sprite.x += 1
          end
        end
        sprite.y += 1
      end
      if @type == 12 # feathers
        if @countarray[i] == 0
          @current_pose[i] = (@current_pose[i] + 1) % @feather_bitmaps.size
          sprite.bitmap = @feather_bitmaps[@current_pose[i]]
        end
        @countarray[i] = (@countarray[i] + 1) % 15
        if rand(100) == 0
          sprite.x -= 1
        end
        if rand(100) == 0
          sprite.y -= 1
        end
        if @info[i] < 50
          if rand(2) == 0
            sprite.x -= 1
          else
            sprite.y -= 1
          end
        else
          if rand(2) == 0
            sprite.x += 1
          else
            sprite.y += 1
          end
        end
        @info[i] = (@info[i] + 1) % 100
      end
      if @type == 14 # sparkles
        if @countarray[i] == 0
          @current_pose[i] = (@current_pose[i] + 1) % @sparkle_bitmaps.size
          sprite.bitmap = @sparkle_bitmaps[@current_pose[i]]
        end
        @countarray[i] = (@countarray[i] + 1) % 15
        sprite.y += 1
        sprite.opacity -= 1
      end
      if @type == 15 # user-defined
        if $WEATHER_UPDATE
          update_user_defined
          $WEATHER_UPDATE = false
        end
        if $WEATHER_ANIMATED and @countarray[i] == 0
          @current_pose[i] = (@current_pose[i] + 1) % @user_bitmaps.size
          sprite.bitmap = @user_bitmaps[@current_pose[i]]
        end
        sprite.x += $WEATHER_X
        sprite.y += $WEATHER_Y
        sprite.opacity -= $WEATHER_FADE
      end
      if @type == 16 # blowing snow
        sprite.x -= 10
        sprite.y += 6
        sprite.opacity -= 4
      end
      if @type == 17 # meteors
        if @countarray[i] > 0
          if rand(20) == 0
            sprite.bitmap = @impact_bitmap
            @countarray[i] = -5
          else
            sprite.x -= 6
            sprite.y += 10
          end
        else
          @countarray[i] += 1
          if @countarray[i] == 0
            sprite.bitmap = @meteor_bitmap
            sprite.opacity = 0
            @count_array = 1
          end
        end
      end
      if @type == 18 # ash
        sprite.y += 2
        case @countarray[i] % 3
        when 0
          sprite.x -= 1
        when 1
          sprite.x += 1
        end
      end
      if @type == 19 or @type == 20 # bubbles
        switch = rand(75) + rand(75) + 1
        if @info[i] < switch / 2
          sprite.x -= 1
        else
          sprite.x += 1
        end
        @info[i] = (@info[i] + 1) % switch
        sprite.y -= 1
        if switch % 2 == 0
          sprite.opacity -= 1
        end
      end
      if @type == 21 # sparkles up
        if @countarray[i] == 0
          @current_pose[i] = (@current_pose[i] + 1) % @sparkle_bitmaps.size
          sprite.bitmap = @sparkle_bitmaps[@current_pose[i]]
        end
        @countarray[i] = (@countarray[i] + 1) % 15
        sprite.y -= 1
        sprite.opacity -= 1
      end
      x = sprite.x - @ox
      y = sprite.y - @oy
      if sprite.opacity < 64 or sprite.x > WIDTH or sprite.x < 0 or sprite.y > HEIGHT or sprite.y < 0
        sprite.x = rand(800) - 100 + @ox
        sprite.y = rand(600) - 200 + @oy
        if [13, 14, 16, 5, 2, 1].include?(@type)
          sprite.opacity = rand(100) + 155
        else
          sprite.opacity = 255
        end
      end
    end
  end
  
  def make_bitmaps
    color1 = Color.new(255, 255, 255, 255)
    color2 = Color.new(255, 255, 255, 128)
    @rain_bitmap = Bitmap.new(7, 56)
    for i in 0..6
      @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
    end
    @rain_splash = Bitmap.new(8, 5)
    @rain_splash.fill_rect(1, 0, 6, 1, color2)
    @rain_splash.fill_rect(1, 4, 6, 1, color2)
    @rain_splash.fill_rect(0, 1, 1, 3, color2)
    @rain_splash.fill_rect(7, 1, 1, 3, color2)
    @rain_splash.set_pixel(1, 0, color1)
    @rain_splash.set_pixel(0, 1, color1)
    
    @storm_bitmap = Bitmap.new(34, 64)
    for i in 0..31
      @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
      @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
      @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
    end
    @snow_bitmap = Bitmap.new(6, 6)
    @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
    @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
    @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
    @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
    @sprites = []
    
    @snow_bitmaps = []
    
    color3 = Color.new(255, 255, 255, 204)
    @snow_bitmaps[0] = Bitmap.new(3, 3)
    @snow_bitmaps[0].fill_rect(0, 0, 3, 3, color2)
    @snow_bitmaps[0].fill_rect(0, 1, 3, 1, color3)
    @snow_bitmaps[0].fill_rect(1, 0, 1, 3, color3)
    @snow_bitmaps[0].set_pixel(1, 1, color1)
    
    @snow_bitmaps[1] = Bitmap.new(4, 4)
    @snow_bitmaps[1].fill_rect(0, 1, 4, 2, color2)
    @snow_bitmaps[1].fill_rect(1, 0, 2, 4, color2)
    @snow_bitmaps[1].fill_rect(1, 1, 2, 2, color1)
    
    @snow_bitmaps[2] = Bitmap.new(5, 5)
    @snow_bitmaps[1].fill_rect(0, 1, 5, 3, color3)
    @snow_bitmaps[1].fill_rect(1, 0, 3, 5, color3)
    @snow_bitmaps[1].fill_rect(1, 1, 3, 3, color2)
    @snow_bitmaps[1].fill_rect(2, 1, 3, 1, color1)
    @snow_bitmaps[1].fill_rect(1, 2, 1, 3, color1)
    
    @snow_bitmaps[3] = Bitmap.new(7, 7)
    @snow_bitmaps[1].fill_rect(1, 1, 5, 5, color3)
    @snow_bitmaps[1].fill_rect(2, 0, 7, 3, color3)
    @snow_bitmaps[1].fill_rect(0, 2, 3, 7, color3)
    @snow_bitmaps[1].fill_rect(2, 1, 5, 3, color2)
    @snow_bitmaps[1].fill_rect(1, 2, 3, 5, color2)
    @snow_bitmaps[1].fill_rect(2, 2, 3, 3, color1)
    @snow_bitmaps[1].fill_rect(3, 1, 5, 1, color1)
    @snow_bitmaps[1].fill_rect(1, 3, 1, 5, color1)
    
    blueGrey  = Color.new(215, 227, 227, 150)
    grey      = Color.new(214, 217, 217, 150)
    lightGrey = Color.new(233, 233, 233, 250)
    lightBlue = Color.new(222, 239, 243, 250)
    @hail_bitmap = Bitmap.new(4, 4)
    @hail_bitmap.fill_rect(1, 0, 2, 1, blueGrey)
    @hail_bitmap.fill_rect(0, 1, 1, 2, blueGrey)
    @hail_bitmap.fill_rect(3, 1, 1, 2, grey)
    @hail_bitmap.fill_rect(1, 3, 2, 1, grey)
    @hail_bitmap.fill_rect(1, 1, 2, 2, lightGrey)
    @hail_bitmap.set_pixel(1, 1, lightBlue)
    
    
    color3 = Color.new(255, 167, 192, 255) # light pink
    color4 = Color.new(213, 106, 136, 255) # dark pink
    @petal_bitmap = Bitmap.new(4, 4) #This creates a new bitmap that is 4 x 4 pixels
    @petal_bitmap.fill_rect(0, 3, 1, 1, color3) # this makes a 1x1 pixel "rectangle" at the 0, 3 pixel of the image (upper left corner is 0, 0)
    @petal_bitmap.fill_rect(1, 2, 1, 1, color3)
    @petal_bitmap.fill_rect(2, 1, 1, 1, color3)
    @petal_bitmap.fill_rect(3, 0, 1, 1, color3)
    @petal_bitmap.fill_rect(1, 3, 1, 1, color4)
    @petal_bitmap.fill_rect(2, 2, 1, 1, color4)
    @petal_bitmap.fill_rect(3, 1, 1, 1, color4)
    
    
    brightOrange = Color.new(248, 88, 0, 255)  
    orangeBrown  = Color.new(144, 80, 56, 255)
    burntRed     = Color.new(152, 0, 0, 255)
    paleOrange   = Color.new(232, 160, 128, 255)
    darkBrown    = Color.new(72, 40, 0, 255)
    @autumn_leaf_bitmaps = []
    @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
    # draw the first of the leaf1 bitmaps
    @autumn_leaf_bitmaps[0].set_pixel(5, 1, orangeBrown)
    @autumn_leaf_bitmaps[0].set_pixel(6, 1, brightOrange)
    @autumn_leaf_bitmaps[0].set_pixel(7, 1, paleOrange)
    @autumn_leaf_bitmaps[0].set_pixel(3, 2, orangeBrown)
    @autumn_leaf_bitmaps[0].fill_rect(4, 2, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[0].set_pixel(6, 2, paleOrange)
    @autumn_leaf_bitmaps[0].set_pixel(2, 3, orangeBrown)
    @autumn_leaf_bitmaps[0].set_pixel(3, 3, brightOrange)
    @autumn_leaf_bitmaps[0].fill_rect(4, 3, 2, 1, paleOrange)
    @autumn_leaf_bitmaps[0].set_pixel(1, 4, orangeBrown)
    @autumn_leaf_bitmaps[0].set_pixel(2, 4, brightOrange)
    @autumn_leaf_bitmaps[0].set_pixel(3, 4, paleOrange)
    @autumn_leaf_bitmaps[0].set_pixel(1, 5, brightOrange)
    @autumn_leaf_bitmaps[0].set_pixel(2, 5, paleOrange)
    @autumn_leaf_bitmaps[0].set_pixel(0, 6, orangeBrown)
    @autumn_leaf_bitmaps[0].set_pixel(1, 6, paleOrange)
    @autumn_leaf_bitmaps[0].set_pixel(0, 7, paleOrange)
    
    # draw the 2nd of the leaf1 bitmaps
    @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
    @autumn_leaf_bitmaps[1].set_pixel(3, 0, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(7, 0, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(3, 1, orangeBrown)
    @autumn_leaf_bitmaps[1].set_pixel(4, 1, burntRed)
    @autumn_leaf_bitmaps[1].set_pixel(6, 1, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(0, 2, paleOrange)
    @autumn_leaf_bitmaps[1].set_pixel(1, 2, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(2, 2, orangeBrown)
    @autumn_leaf_bitmaps[1].set_pixel(3, 2, burntRed)
    @autumn_leaf_bitmaps[1].set_pixel(4, 2, orangeBrown)
    @autumn_leaf_bitmaps[1].set_pixel(5, 2, brightOrange)
    @autumn_leaf_bitmaps[1].fill_rect(1, 3, 3, 1, orangeBrown)
    @autumn_leaf_bitmaps[1].fill_rect(4, 3, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(6, 3, orangeBrown)
    @autumn_leaf_bitmaps[1].set_pixel(2, 4, burntRed)
    @autumn_leaf_bitmaps[1].fill_rect(3, 4, 3, 1, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(6, 4, burntRed)
    @autumn_leaf_bitmaps[1].set_pixel(7, 4, darkBrown)
    @autumn_leaf_bitmaps[1].set_pixel(1, 5, orangeBrown)
    @autumn_leaf_bitmaps[1].fill_rect(2, 5, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(4, 5, orangeBrown)
    @autumn_leaf_bitmaps[1].set_pixel(5, 5, burntRed)
    @autumn_leaf_bitmaps[1].fill_rect(1, 6, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[1].fill_rect(4, 6, 2, 1, burntRed)
    @autumn_leaf_bitmaps[1].set_pixel(0, 7, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(5, 7, darkBrown)
    
    # draw the 3rd of the leaf1 bitmaps
    @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
    @autumn_leaf_bitmaps[2].set_pixel(7, 1, paleOrange)
    @autumn_leaf_bitmaps[2].set_pixel(6, 2, paleOrange)
    @autumn_leaf_bitmaps[2].set_pixel(7, 2, orangeBrown)
    @autumn_leaf_bitmaps[2].set_pixel(5, 3, paleOrange)
    @autumn_leaf_bitmaps[2].set_pixel(6, 3, brightOrange)
    @autumn_leaf_bitmaps[2].set_pixel(4, 4, paleOrange)
    @autumn_leaf_bitmaps[2].set_pixel(5, 4, brightOrange)
    @autumn_leaf_bitmaps[2].set_pixel(6, 4, orangeBrown)
    @autumn_leaf_bitmaps[2].fill_rect(2, 5, 2, 1, paleOrange)
    @autumn_leaf_bitmaps[2].set_pixel(4, 5, brightOrange)
    @autumn_leaf_bitmaps[2].set_pixel(5, 5, orangeBrown)
    @autumn_leaf_bitmaps[2].set_pixel(1, 6, paleOrange)
    @autumn_leaf_bitmaps[2].fill_rect(2, 6, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[2].set_pixel(4, 6, orangeBrown)
    @autumn_leaf_bitmaps[2].set_pixel(0, 7, paleOrange)
    @autumn_leaf_bitmaps[2].set_pixel(1, 7, brightOrange)
    @autumn_leaf_bitmaps[2].set_pixel(2, 7, orangeBrown)
    
    # draw the 4th of the leaf1 bitmaps
    @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
    @autumn_leaf_bitmaps[3].set_pixel(3, 0, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(7, 0, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(3, 1, orangeBrown)
    @autumn_leaf_bitmaps[3].set_pixel(4, 1, burntRed)
    @autumn_leaf_bitmaps[3].set_pixel(6, 1, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(0, 2, paleOrange)
    @autumn_leaf_bitmaps[3].set_pixel(1, 2, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(2, 2, orangeBrown)
    @autumn_leaf_bitmaps[3].set_pixel(3, 2, burntRed)
    @autumn_leaf_bitmaps[3].set_pixel(4, 2, orangeBrown)
    @autumn_leaf_bitmaps[3].set_pixel(5, 2, brightOrange)
    @autumn_leaf_bitmaps[3].fill_rect(1, 3, 3, 1, orangeBrown)
    @autumn_leaf_bitmaps[3].fill_rect(4, 3, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(6, 3, orangeBrown)
    @autumn_leaf_bitmaps[3].set_pixel(2, 4, burntRed)
    @autumn_leaf_bitmaps[3].fill_rect(3, 4, 3, 1, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(6, 4, burntRed)
    @autumn_leaf_bitmaps[3].set_pixel(7, 4, darkBrown)
    @autumn_leaf_bitmaps[3].set_pixel(1, 5, orangeBrown)
    @autumn_leaf_bitmaps[3].fill_rect(2, 5, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(4, 5, orangeBrown)
    @autumn_leaf_bitmaps[3].set_pixel(5, 5, burntRed)
    @autumn_leaf_bitmaps[3].fill_rect(1, 6, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[3].fill_rect(4, 6, 2, 1, burntRed)
    @autumn_leaf_bitmaps[3].set_pixel(0, 7, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(5, 7, darkBrown)
    
    @green_leaf_bitmaps = []
    darkGreen  = Color.new(62, 76, 31, 255)
    midGreen   = Color.new(76, 91, 43, 255)
    khaki      = Color.new(105, 114, 66, 255)
    lightGreen = Color.new(128, 136, 88, 255)
    mint       = Color.new(146, 154, 106, 255)
    
    # 1st leaf bitmap
    @green_leaf_bitmaps[0] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[0].set_pixel(1, 0, darkGreen)
    @green_leaf_bitmaps[0].set_pixel(1, 1, midGreen)
    @green_leaf_bitmaps[0].set_pixel(2, 1, darkGreen)
    @green_leaf_bitmaps[0].set_pixel(2, 2, khaki)
    @green_leaf_bitmaps[0].set_pixel(3, 2, darkGreen)
    @green_leaf_bitmaps[0].set_pixel(4, 2, khaki)
    @green_leaf_bitmaps[0].fill_rect(2, 3, 3, 1, midGreen)
    @green_leaf_bitmaps[0].set_pixel(5, 3, khaki)
    @green_leaf_bitmaps[0].fill_rect(2, 4, 2, 1, midGreen)
    @green_leaf_bitmaps[0].set_pixel(4, 4, darkGreen)
    @green_leaf_bitmaps[0].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[0].set_pixel(6, 4, khaki)
    @green_leaf_bitmaps[0].set_pixel(3, 5, midGreen)
    @green_leaf_bitmaps[0].set_pixel(4, 5, darkGreen)
    @green_leaf_bitmaps[0].set_pixel(5, 5, khaki)
    @green_leaf_bitmaps[0].set_pixel(6, 5, lightGreen)
    @green_leaf_bitmaps[0].set_pixel(4, 6, midGreen)
    @green_leaf_bitmaps[0].set_pixel(5, 6, darkGreen)
    @green_leaf_bitmaps[0].set_pixel(6, 6, lightGreen)
    @green_leaf_bitmaps[0].set_pixel(6, 7, khaki)
    
    # 2nd leaf bitmap
    @green_leaf_bitmaps[1] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[1].fill_rect(1, 1, 1, 2, midGreen)
    @green_leaf_bitmaps[1].fill_rect(2, 2, 2, 1, khaki)
    @green_leaf_bitmaps[1].set_pixel(4, 2, lightGreen)
    @green_leaf_bitmaps[1].fill_rect(2, 3, 2, 1, darkGreen)
    @green_leaf_bitmaps[1].fill_rect(4, 3, 2, 1, lightGreen)
    @green_leaf_bitmaps[1].set_pixel(2, 4, midGreen)
    @green_leaf_bitmaps[1].set_pixel(3, 4, darkGreen)
    @green_leaf_bitmaps[1].set_pixel(4, 4, khaki)
    @green_leaf_bitmaps[1].fill_rect(5, 4, 2, 1, lightGreen)
    @green_leaf_bitmaps[1].set_pixel(3, 5, midGreen)
    @green_leaf_bitmaps[1].set_pixel(4, 5, darkGreen)
    @green_leaf_bitmaps[1].set_pixel(5, 5, khaki)
    @green_leaf_bitmaps[1].set_pixel(6, 5, lightGreen)
    @green_leaf_bitmaps[1].set_pixel(5, 6, darkGreen)
    @green_leaf_bitmaps[1].fill_rect(6, 6, 2, 1, khaki)
    
    # 3rd leaf bitmap
    @green_leaf_bitmaps[2] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[2].set_pixel(1, 1, darkGreen)
    @green_leaf_bitmaps[2].fill_rect(1, 2, 2, 1, midGreen)
    @green_leaf_bitmaps[2].set_pixel(2, 3, midGreen)
    @green_leaf_bitmaps[2].set_pixel(3, 3, darkGreen)
    @green_leaf_bitmaps[2].set_pixel(4, 3, midGreen)
    @green_leaf_bitmaps[2].fill_rect(2, 4, 2, 1, midGreen)
    @green_leaf_bitmaps[2].set_pixel(4, 4, darkGreen)
    @green_leaf_bitmaps[2].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[2].set_pixel(3, 5, midGreen)
    @green_leaf_bitmaps[2].set_pixel(4, 5, darkGreen)
    @green_leaf_bitmaps[2].fill_rect(5, 5, 2, 1, khaki)
    @green_leaf_bitmaps[2].fill_rect(4, 6, 2, 1, midGreen)
    @green_leaf_bitmaps[2].set_pixel(6, 6, lightGreen)
    @green_leaf_bitmaps[2].set_pixel(6, 7, khaki)
    
    # 4th leaf bitmap
    @green_leaf_bitmaps[3] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[3].fill_rect(0, 3, 1, 2, darkGreen)
    @green_leaf_bitmaps[3].set_pixel(1, 4, midGreen)
    @green_leaf_bitmaps[3].set_pixel(2, 4, khaki)
    @green_leaf_bitmaps[3].set_pixel(3, 4, lightGreen)
    @green_leaf_bitmaps[3].set_pixel(4, 4, darkGreen)
    @green_leaf_bitmaps[3].set_pixel(7, 4, midGreen)
    @green_leaf_bitmaps[3].set_pixel(1, 5, darkGreen)
    @green_leaf_bitmaps[3].set_pixel(2, 5, midGreen)
    @green_leaf_bitmaps[3].set_pixel(3, 5, lightGreen)
    @green_leaf_bitmaps[3].set_pixel(4, 5, mint)
    @green_leaf_bitmaps[3].set_pixel(5, 5, lightGreen)
    @green_leaf_bitmaps[3].set_pixel(6, 5, khaki)
    @green_leaf_bitmaps[3].set_pixel(7, 5, midGreen)
    @green_leaf_bitmaps[3].fill_rect(2, 6, 2, 1, midGreen)
    @green_leaf_bitmaps[3].set_pixel(4, 6, lightGreen)
    @green_leaf_bitmaps[3].set_pixel(5, 6, khaki)
    @green_leaf_bitmaps[3].set_pixel(6, 6, midGreen)
    
    # 5th leaf bitmap
    @green_leaf_bitmaps[4] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[4].set_pixel(6, 2, midGreen)
    @green_leaf_bitmaps[4].set_pixel(7, 2, darkGreen)
    @green_leaf_bitmaps[4].fill_rect(4, 3, 2, 1, midGreen)
    @green_leaf_bitmaps[4].set_pixel(6, 3, khaki)
    @green_leaf_bitmaps[4].set_pixel(2, 4, darkGreen)
    @green_leaf_bitmaps[4].fill_rect(3, 4, 2, 1, khaki)
    @green_leaf_bitmaps[4].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[4].set_pixel(6, 4, khaki)
    @green_leaf_bitmaps[4].set_pixel(1, 5, midGreen)
    @green_leaf_bitmaps[4].set_pixel(2, 5, khaki)
    @green_leaf_bitmaps[4].set_pixel(3, 5, lightGreen)
    @green_leaf_bitmaps[4].set_pixel(4, 5, mint)
    @green_leaf_bitmaps[4].set_pixel(5, 5, midGreen)
    @green_leaf_bitmaps[4].set_pixel(2, 6, darkGreen)
    @green_leaf_bitmaps[4].fill_rect(3, 6, 2, 1, midGreen)
    
    # 6th leaf bitmap
    @green_leaf_bitmaps[5] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[5].fill_rect(6, 2, 2, 1, midGreen)
    @green_leaf_bitmaps[5].fill_rect(4, 3, 2, 1, midGreen)
    @green_leaf_bitmaps[5].set_pixel(6, 3, khaki)
    @green_leaf_bitmaps[5].set_pixel(3, 4, midGreen)
    @green_leaf_bitmaps[5].set_pixel(4, 4, khaki)
    @green_leaf_bitmaps[5].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[5].set_pixel(6, 4, mint)
    @green_leaf_bitmaps[5].set_pixel(1, 5, midGreen)
    @green_leaf_bitmaps[5].set_pixel(2, 5, khaki)
    @green_leaf_bitmaps[5].fill_rect(3, 5, 2, 1, mint)
    @green_leaf_bitmaps[5].set_pixel(5, 5, lightGreen)
    @green_leaf_bitmaps[5].set_pixel(2, 6, midGreen)
    @green_leaf_bitmaps[5].set_pixel(3, 6, khaki)
    @green_leaf_bitmaps[5].set_pixel(4, 6, lightGreen)
    
    # 7th leaf bitmap
    @green_leaf_bitmaps[6] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[6].fill_rect(6, 1, 1, 2, midGreen)
    @green_leaf_bitmaps[6].fill_rect(4, 2, 2, 1, midGreen)
    @green_leaf_bitmaps[6].fill_rect(6, 2, 1, 2, darkGreen)
    @green_leaf_bitmaps[6].fill_rect(3, 3, 2, 1, midGreen)
    @green_leaf_bitmaps[6].set_pixel(5, 3, khaki)
    @green_leaf_bitmaps[6].set_pixel(2, 4, midGreen)
    @green_leaf_bitmaps[6].set_pixel(3, 4, khaki)
    @green_leaf_bitmaps[6].set_pixel(4, 4, lightGreen)
    @green_leaf_bitmaps[6].set_pixel(5, 4, midGreen)
    @green_leaf_bitmaps[6].set_pixel(1, 5, midGreen)
    @green_leaf_bitmaps[6].set_pixel(2, 5, khaki)
    @green_leaf_bitmaps[6].fill_rect(3, 5, 2, 1, midGreen)
    @green_leaf_bitmaps[6].set_pixel(1, 6, darkGreen)
    @green_leaf_bitmaps[6].set_pixel(2, 6, midGreen)
    
    # 8th leaf bitmap
    @green_leaf_bitmaps[7] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[7].set_pixel(6, 1, midGreen)
    @green_leaf_bitmaps[7].fill_rect(4, 2, 3, 2, midGreen)
    @green_leaf_bitmaps[7].set_pixel(3, 3, darkGreen)
    @green_leaf_bitmaps[7].set_pixel(2, 4, darkGreen)
    @green_leaf_bitmaps[7].set_pixel(3, 4, midGreen)
    @green_leaf_bitmaps[7].fill_rect(4, 4, 2, 1, khaki)
    @green_leaf_bitmaps[7].set_pixel(1, 5, darkGreen)
    @green_leaf_bitmaps[7].set_pixel(2, 5, midGreen)
    @green_leaf_bitmaps[7].fill_rect(3, 5, 2, 1, lightGreen)
    @green_leaf_bitmaps[7].set_pixel(2, 6, midGreen)
    @green_leaf_bitmaps[7].set_pixel(3, 6, lightGreen)
    
    # 9th leaf bitmap
    @green_leaf_bitmaps[8] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[8].fill_rect(6, 1, 1, 2, midGreen)
    @green_leaf_bitmaps[8].fill_rect(4, 2, 2, 1, midGreen)
    @green_leaf_bitmaps[8].fill_rect(6, 2, 1, 2, darkGreen)
    @green_leaf_bitmaps[8].fill_rect(3, 3, 2, 1, midGreen)
    @green_leaf_bitmaps[8].set_pixel(5, 3, khaki)
    @green_leaf_bitmaps[8].set_pixel(2, 4, midGreen)
    @green_leaf_bitmaps[8].set_pixel(3, 4, khaki)
    @green_leaf_bitmaps[8].set_pixel(4, 4, lightGreen)
    @green_leaf_bitmaps[8].set_pixel(5, 4, midGreen)
    @green_leaf_bitmaps[8].set_pixel(1, 5, midGreen)
    @green_leaf_bitmaps[8].set_pixel(2, 5, khaki)
    @green_leaf_bitmaps[8].fill_rect(3, 5, 2, 1, midGreen)
    @green_leaf_bitmaps[8].set_pixel(1, 6, darkGreen)
    @green_leaf_bitmaps[8].set_pixel(2, 6, midGreen)
    
    # 10th leaf bitmap
    @green_leaf_bitmaps[9] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[9].fill_rect(6, 2, 2, 1, midGreen)
    @green_leaf_bitmaps[9].fill_rect(4, 3, 2, 1, midGreen)
    @green_leaf_bitmaps[9].set_pixel(6, 3, khaki)
    @green_leaf_bitmaps[9].set_pixel(3, 4, midGreen)
    @green_leaf_bitmaps[9].set_pixel(4, 4, khaki)
    @green_leaf_bitmaps[9].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[9].set_pixel(6, 4, mint)
    @green_leaf_bitmaps[9].set_pixel(1, 5, midGreen)
    @green_leaf_bitmaps[9].set_pixel(2, 5, khaki)
    @green_leaf_bitmaps[9].fill_rect(3, 5, 2, 1, mint)
    @green_leaf_bitmaps[9].set_pixel(5, 5, lightGreen)
    @green_leaf_bitmaps[9].set_pixel(2, 6, midGreen)
    @green_leaf_bitmaps[9].set_pixel(3, 6, khaki)
    @green_leaf_bitmaps[9].set_pixel(4, 6, lightGreen)
    
    # 11th leaf bitmap
    @green_leaf_bitmaps[10] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[10].set_pixel(6, 2, midGreen)
    @green_leaf_bitmaps[10].set_pixel(7, 2, darkGreen)
    @green_leaf_bitmaps[10].fill_rect(4, 3, 2, 1, midGreen)
    @green_leaf_bitmaps[10].set_pixel(6, 3, khaki)
    @green_leaf_bitmaps[10].set_pixel(2, 4, darkGreen)
    @green_leaf_bitmaps[10].fill_rect(3, 4, 2, 1, khaki)
    @green_leaf_bitmaps[10].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[10].set_pixel(6, 4, khaki)
    @green_leaf_bitmaps[10].set_pixel(1, 5, midGreen)
    @green_leaf_bitmaps[10].set_pixel(2, 5, khaki)
    @green_leaf_bitmaps[10].set_pixel(3, 5, lightGreen)
    @green_leaf_bitmaps[10].set_pixel(4, 5, mint)
    @green_leaf_bitmaps[10].set_pixel(5, 5, midGreen)
    @green_leaf_bitmaps[10].set_pixel(2, 6, darkGreen)
    @green_leaf_bitmaps[10].fill_rect(3, 6, 2, 1, midGreen)
    
    # 12th leaf bitmap
    @green_leaf_bitmaps[11] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[11].fill_rect(0, 3, 1, 2, darkGreen)
    @green_leaf_bitmaps[11].set_pixel(1, 4, midGreen)
    @green_leaf_bitmaps[11].set_pixel(2, 4, khaki)
    @green_leaf_bitmaps[11].set_pixel(3, 4, lightGreen)
    @green_leaf_bitmaps[11].set_pixel(4, 4, darkGreen)
    @green_leaf_bitmaps[11].set_pixel(7, 4, midGreen)
    @green_leaf_bitmaps[11].set_pixel(1, 5, darkGreen)
    @green_leaf_bitmaps[11].set_pixel(2, 5, midGreen)
    @green_leaf_bitmaps[11].set_pixel(3, 5, lightGreen)
    @green_leaf_bitmaps[11].set_pixel(4, 5, mint)
    @green_leaf_bitmaps[11].set_pixel(5, 5, lightGreen)
    @green_leaf_bitmaps[11].set_pixel(6, 5, khaki)
    @green_leaf_bitmaps[11].set_pixel(7, 5, midGreen)
    @green_leaf_bitmaps[11].fill_rect(2, 6, 2, 1, midGreen)
    @green_leaf_bitmaps[11].set_pixel(4, 6, lightGreen)
    @green_leaf_bitmaps[11].set_pixel(5, 6, khaki)
    @green_leaf_bitmaps[11].set_pixel(6, 6, midGreen)
    
    # 13th leaf bitmap
    @green_leaf_bitmaps[12] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[12].set_pixel(1, 1, darkGreen)
    @green_leaf_bitmaps[12].fill_rect(1, 2, 2, 1, midGreen)
    @green_leaf_bitmaps[12].set_pixel(2, 3, midGreen)
    @green_leaf_bitmaps[12].set_pixel(3, 3, darkGreen)
    @green_leaf_bitmaps[12].set_pixel(4, 3, midGreen)
    @green_leaf_bitmaps[12].fill_rect(2, 4, 2, 1, midGreen)
    @green_leaf_bitmaps[12].set_pixel(4, 4, darkGreen)
    @green_leaf_bitmaps[12].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[12].set_pixel(3, 5, midGreen)
    @green_leaf_bitmaps[12].set_pixel(4, 5, darkGreen)
    @green_leaf_bitmaps[12].fill_rect(5, 5, 2, 1, khaki)
    @green_leaf_bitmaps[12].fill_rect(4, 6, 2, 1, midGreen)
    @green_leaf_bitmaps[12].set_pixel(6, 6, lightGreen)
    @green_leaf_bitmaps[12].set_pixel(6, 7, khaki)
    
    @rose_bitmaps = []
    brightRed = Color.new(255, 0, 0, 255)
    midRed    = Color.new(179, 17, 17, 255)
    darkRed   = Color.new(141, 9, 9, 255)
    
    # 1st rose petal bitmap
    @rose_bitmaps[0] = Bitmap.new(3, 3)
    @rose_bitmaps[0].fill_rect(1, 0, 2, 1, brightRed)
    @rose_bitmaps[0].fill_rect(0, 1, 1, 2, brightRed)
    @rose_bitmaps[0].fill_rect(1, 1, 2, 2, midRed)
    @rose_bitmaps[0].set_pixel(2, 2, darkRed)
    
    # 2nd rose petal bitmap
    @rose_bitmaps[1] = Bitmap.new(3, 3)
    @rose_bitmaps[1].set_pixel(0, 1, midRed)
    @rose_bitmaps[1].set_pixel(1, 1, brightRed)
    @rose_bitmaps[1].fill_rect(1, 2, 1, 2, midRed)
    
    @feather_bitmaps = []
    white = Color.new(255, 255, 255, 255)
    
    # 1st feather bitmap
    @feather_bitmaps[0] = Bitmap.new(3, 3)
    @feather_bitmaps[0].set_pixel(0, 2, white)
    @feather_bitmaps[0].set_pixel(1, 2, grey)
    @feather_bitmaps[0].set_pixel(2, 1, grey)
    
    # 2nd feather bitmap
    @feather_bitmaps[0] = Bitmap.new(3, 3)
    @feather_bitmaps[0].set_pixel(0, 0, white)
    @feather_bitmaps[0].set_pixel(0, 1, grey)
    @feather_bitmaps[0].set_pixel(1, 2, grey)
    
    # 3rd feather bitmap
    @feather_bitmaps[0] = Bitmap.new(3, 3)
    @feather_bitmaps[0].set_pixel(2, 0, white)
    @feather_bitmaps[0].set_pixel(1, 0, grey)
    @feather_bitmaps[0].set_pixel(0, 1, grey)
    
    # 4th feather bitmap
    @feather_bitmaps[0] = Bitmap.new(3, 3)
    @feather_bitmaps[0].set_pixel(2, 2, white)
    @feather_bitmaps[0].set_pixel(2, 1, grey)
    @feather_bitmaps[0].set_pixel(1, 0, grey)
    
    @blood_rain_bitmap = Bitmap.new(7, 56)
    for i in 0..6
      @blood_rain_bitmap.fill_rect(6-i, i*8, 1, 8, darkRed)
    end
    @blood_rain_splash = Bitmap.new(8, 5)
    @blood_rain_splash.fill_rect(1, 0, 6, 1, darkRed)
    @blood_rain_splash.fill_rect(1, 4, 6, 1, darkRed)
    @blood_rain_splash.fill_rect(0, 1, 1, 3, darkRed)
    @blood_rain_splash.fill_rect(7, 1, 1, 3, darkRed)
    
    @sparkle_bitmaps = []
    
    lightBlue = Color.new(181, 244, 255, 255)
    midBlue   = Color.new(126, 197, 235, 255)
    darkBlue  = Color.new(77, 136, 225, 255)
    
    # 1st sparkle bitmap
    @sparkle_bitmaps[0] = Bitmap.new(7, 7)
    @sparkle_bitmaps[0].set_pixel(3, 3, darkBlue)
    
    # 2nd sparkle bitmap
    @sparkle_bitmaps[1] = Bitmap.new(7, 7)
    @sparkle_bitmaps[1].fill_rect(3, 2, 1, 3, darkBlue)
    @sparkle_bitmaps[1].fill_rect(2, 3, 3, 1, darkBlue)
    @sparkle_bitmaps[1].set_pixel(3, 3, midBlue)
    
    # 3rd sparkle bitmap
    @sparkle_bitmaps[2] = Bitmap.new(7, 7)
    @sparkle_bitmaps[2].set_pixel(1, 1, darkBlue)
    @sparkle_bitmaps[2].set_pixel(5, 1, darkBlue)
    @sparkle_bitmaps[2].set_pixel(2, 2, midBlue)
    @sparkle_bitmaps[2].set_pixel(4, 2, midBlue)
    @sparkle_bitmaps[2].set_pixel(3, 3, lightBlue)
    @sparkle_bitmaps[2].set_pixel(2, 4, midBlue)
    @sparkle_bitmaps[2].set_pixel(4, 4, midBlue)
    @sparkle_bitmaps[2].set_pixel(1, 5, darkBlue)
    @sparkle_bitmaps[2].set_pixel(5, 5, darkBlue)
    
    # 4th sparkle bitmap
    @sparkle_bitmaps[3] = Bitmap.new(7, 7)
    @sparkle_bitmaps[3].fill_rect(3, 1, 1, 5, darkBlue)
    @sparkle_bitmaps[3].fill_rect(1, 3, 5, 1, darkBlue)
    @sparkle_bitmaps[3].fill_rect(3, 2, 1, 3, midBlue)
    @sparkle_bitmaps[3].fill_rect(2, 3, 3, 1, midBlue)
    @sparkle_bitmaps[3].set_pixel(3, 3, lightBlue)
    
    # 5th sparkle bitmap
    @sparkle_bitmaps[4] = Bitmap.new(7, 7)
    @sparkle_bitmaps[4].fill_rect(2, 2, 3, 3, midBlue)
    @sparkle_bitmaps[4].fill_rect(3, 2, 1, 3, darkBlue)
    @sparkle_bitmaps[4].fill_rect(2, 3, 3, 1, darkBlue)
    @sparkle_bitmaps[4].set_pixel(3, 3, lightBlue)
    @sparkle_bitmaps[4].set_pixel(1, 1, darkBlue)
    @sparkle_bitmaps[4].set_pixel(5, 1, darkBlue)
    @sparkle_bitmaps[4].set_pixel(1, 5, darkBlue)
    @sparkle_bitmaps[4].set_pixel(5, 1, darkBlue)
    
    # 6th sparkle bitmap
    @sparkle_bitmaps[5] = Bitmap.new(7, 7)
    @sparkle_bitmaps[5].fill_rect(2, 1, 3, 5, darkBlue)
    @sparkle_bitmaps[5].fill_rect(1, 2, 5, 3, darkBlue)
    @sparkle_bitmaps[5].fill_rect(2, 2, 3, 3, midBlue)
    @sparkle_bitmaps[5].fill_rect(3, 1, 1, 5, midBlue)
    @sparkle_bitmaps[5].fill_rect(1, 3, 5, 1, midBlue)
    @sparkle_bitmaps[5].fill_rect(3, 2, 1, 3, lightBlue)
    @sparkle_bitmaps[5].fill_rect(2, 3, 3, 1, lightBlue)
    @sparkle_bitmaps[5].set_pixel(3, 3, white)
    
    # 7th sparkle bitmap
    @sparkle_bitmaps[6] = Bitmap.new(7, 7)
    @sparkle_bitmaps[6].fill_rect(2, 1, 3, 5, midBlue)
    @sparkle_bitmaps[6].fill_rect(1, 2, 5, 3, midBlue)
    @sparkle_bitmaps[6].fill_rect(3, 0, 1, 7, darkBlue)
    @sparkle_bitmaps[6].fill_rect(0, 3, 7, 1, darkBlue)
    @sparkle_bitmaps[6].fill_rect(2, 2, 3, 3, lightBlue)
    @sparkle_bitmaps[6].fill_rect(3, 2, 1, 3, midBlue)
    @sparkle_bitmaps[6].fill_rect(2, 3, 3, 1, midBlue)
    @sparkle_bitmaps[6].set_pixel(3, 3, white)
    
    # Meteor bitmap
    @meteor_bitmap = Bitmap.new(14, 12)
    @meteor_bitmap.fill_rect(0, 8, 5, 4, paleOrange)
    @meteor_bitmap.fill_rect(1, 7, 6, 4, paleOrange)
    @meteor_bitmap.set_pixel(7, 8, paleOrange)
    @meteor_bitmap.fill_rect(1, 8, 2, 2, brightOrange)
    @meteor_bitmap.set_pixel(2, 7, brightOrange)
    @meteor_bitmap.fill_rect(3, 6, 2, 1, brightOrange)
    @meteor_bitmap.set_pixel(3, 8, brightOrange)
    @meteor_bitmap.set_pixel(3, 10, brightOrange)
    @meteor_bitmap.set_pixel(4, 9, brightOrange)
    @meteor_bitmap.fill_rect(5, 5, 1, 5, brightOrange)
    @meteor_bitmap.fill_rect(6, 4, 1, 5, brightOrange)
    @meteor_bitmap.fill_rect(7, 3, 1, 5, brightOrange)
    @meteor_bitmap.fill_rect(8, 6, 1, 2, brightOrange)
    @meteor_bitmap.set_pixel(9, 5, brightOrange)
    @meteor_bitmap.set_pixel(3, 8, midRed)
    @meteor_bitmap.fill_rect(4, 7, 1, 2, midRed)
    @meteor_bitmap.set_pixel(4, 5, midRed)
    @meteor_bitmap.set_pixel(5, 4, midRed)
    @meteor_bitmap.set_pixel(5, 6, midRed)
    @meteor_bitmap.set_pixel(6, 5, midRed)
    @meteor_bitmap.set_pixel(6, 7, midRed)
    @meteor_bitmap.fill_rect(7, 4, 1, 3, midRed)
    @meteor_bitmap.fill_rect(8, 3, 1, 3, midRed)
    @meteor_bitmap.fill_rect(9, 2, 1, 3, midRed)
    @meteor_bitmap.fill_rect(10, 1, 1, 3, midRed)
    @meteor_bitmap.fill_rect(11, 0, 1, 3, midRed)
    @meteor_bitmap.fill_rect(12, 0, 1, 2, midRed)
    @meteor_bitmap.set_pixel(13, 0, midRed)
    
    # impact bitmap
    @impact_bitmap = Bitmap.new(22, 11)
    @impact_bitmap.fill_rect(0, 5, 1, 2, brightOrange)
    @impact_bitmap.set_pixel(1, 4, brightOrange)
    @impact_bitmap.set_pixel(1, 6, brightOrange)
    @impact_bitmap.set_pixel(2, 3, brightOrange)
    @impact_bitmap.set_pixel(2, 7, brightOrange)
    @impact_bitmap.set_pixel(3, 2, midRed)
    @impact_bitmap.set_pixel(3, 7, midRed)
    @impact_bitmap.set_pixel(4, 2, brightOrange)
    @impact_bitmap.set_pixel(4, 8, brightOrange)
    @impact_bitmap.set_pixel(5, 2, midRed)
    @impact_bitmap.fill_rect(5, 8, 3, 1, brightOrange)
    @impact_bitmap.set_pixel(6, 1, midRed)
    @impact_bitmap.fill_rect(7, 1, 8, 1, brightOrange)
    @impact_bitmap.fill_rect(7, 9, 8, 1, midRed)
    
    
    # Ash bitmaps
    @ash_bitmaps = []
    @ash_bitmaps[0] = Bitmap.new(3, 3)
    @ash_bitmaps[0].fill_rect(0, 1, 1, 3, lightGrey)
    @ash_bitmaps[0].fill_rect(1, 0, 3, 1, lightGrey)
    @ash_bitmaps[0].set_pixel(1, 1, white)
    @ash_bitmaps[1] = Bitmap.new(3, 3)
    @ash_bitmaps[1].fill_rect(0, 1, 1, 3, grey)
    @ash_bitmaps[1].fill_rect(1, 0, 3, 1, grey)
    @ash_bitmaps[1].set_pixel(1, 1, lightGrey)
    
    # Bubble bitmaps
    @bubble_bitmaps = []
    darkBlue  = Color.new(77, 136, 225, 160)
    aqua = Color.new(197, 253, 254, 160)
    lavender = Color.new(225, 190, 244, 160)
    
    # first bubble bitmap
    @bubble_bitmaps[0] = Bitmap.new(24, 24)
    @bubble_bitmaps[0].fill_rect(0, 9, 24, 5, darkBlue)
    @bubble_bitmaps[0].fill_rect(1, 6, 22, 11, darkBlue)
    @bubble_bitmaps[0].fill_rect(2, 5, 20, 13, darkBlue)
    @bubble_bitmaps[0].fill_rect(3, 4, 18, 15, darkBlue)
    @bubble_bitmaps[0].fill_rect(4, 3, 16, 17, darkBlue)
    @bubble_bitmaps[0].fill_rect(5, 2, 14, 19, darkBlue)
    @bubble_bitmaps[0].fill_rect(6, 1, 12, 21, darkBlue)
    @bubble_bitmaps[0].fill_rect(9, 0, 5, 24, darkBlue)
    @bubble_bitmaps[0].fill_rect(2, 11, 20, 4, aqua)
    @bubble_bitmaps[0].fill_rect(3, 7, 18, 10, aqua)
    @bubble_bitmaps[0].fill_rect(4, 6, 16, 12, aqua)
    @bubble_bitmaps[0].fill_rect(5, 5, 14, 14, aqua)
    @bubble_bitmaps[0].fill_rect(6, 4, 12, 16, aqua)
    @bubble_bitmaps[0].fill_rect(9, 2, 4, 20, aqua)
    @bubble_bitmaps[0].fill_rect(5, 10, 1, 7, lavender)
    @bubble_bitmaps[0].fill_rect(6, 14, 1, 5, lavender)
    @bubble_bitmaps[0].fill_rect(7, 15, 1, 4, lavender)
    @bubble_bitmaps[0].fill_rect(8, 16, 1, 4, lavender)
    @bubble_bitmaps[0].fill_rect(9, 17, 1, 3, lavender)
    @bubble_bitmaps[0].fill_rect(10, 18, 4, 3, lavender)
    @bubble_bitmaps[0].fill_rect(14, 18, 1, 2, lavender)
    @bubble_bitmaps[0].fill_rect(13, 5, 4, 4, white)
    @bubble_bitmaps[0].fill_rect(14, 4, 2, 1, white)
    @bubble_bitmaps[0].set_pixel(17, 6, white)
    
    # second bubble bitmap
    @bubble_bitmaps[1] = Bitmap.new(14, 15)
    @bubble_bitmaps[1].fill_rect(0, 4, 14, 7, darkBlue)
    @bubble_bitmaps[1].fill_rect(1, 3, 12, 9, darkBlue)
    @bubble_bitmaps[1].fill_rect(2, 2, 10, 11, darkBlue)
    @bubble_bitmaps[1].fill_rect(3, 1, 8, 13, darkBlue)
    @bubble_bitmaps[1].fill_rect(5, 0, 4, 15, darkBlue)
    @bubble_bitmaps[1].fill_rect(1, 5, 12, 4, aqua)
    @bubble_bitmaps[1].fill_rect(2, 4, 10, 6, aqua)
    @bubble_bitmaps[1].fill_rect(3, 3, 8, 8, aqua)
    @bubble_bitmaps[1].fill_rect(4, 2, 6, 10, aqua)
    @bubble_bitmaps[1].fill_rect(1, 5, 12, 4, aqua)
    @bubble_bitmaps[1].fill_rect(3, 9, 1, 2, lavender)
    @bubble_bitmaps[1].fill_rect(4, 10, 1, 2, lavender)
    @bubble_bitmaps[1].fill_rect(5, 11, 4, 1, lavender)
    @bubble_bitmaps[1].fill_rect(6, 12, 2, 1, white)
    @bubble_bitmaps[1].fill_rect(8, 3, 2, 2, white)
    @bubble_bitmaps[1].set_pixel(7, 4, white)
    @bubble_bitmaps[1].set_pixel(8, 5, white)
    
    # Other option for bubbles
    @bubble2_bitmaps = Array.new
    darkSteelGray = Color.new(145, 150, 155, 160)
    midSteelGray = Color.new(180, 180, 185, 160)
    lightSteelGray = Color.new(225, 225, 235, 160)
    steelBlue = Color.new(145, 145, 165, 160)
    lightSteelBlue = Color.new(165, 170, 180, 160)
    transparentWhite = Color.new(255, 255, 255, 160)
    
    # first bubble 2 bitmap
    @bubble2_bitmaps[0] = Bitmap.new(6, 6)
    @bubble2_bitmaps[0].fill_rect(0, 0, 6, 6, darkSteelGray)
    @bubble2_bitmaps[0].fill_rect(0, 2, 6, 2, midSteelGray)
    @bubble2_bitmaps[0].fill_rect(2, 0, 2, 6, midSteelGray)
    @bubble2_bitmaps[0].fill_rect(2, 2, 2, 2, lightSteelGray)
    
    # second bubble 2 bitmap
    @bubble2_bitmaps[1] = Bitmap.new(8, 8)
    @bubble2_bitmaps[1].fill_rect(0, 2, 2, 4, steelBlue)
    @bubble2_bitmaps[1].fill_rect(2, 0, 4, 2, darkSteelGray)
    @bubble2_bitmaps[1].fill_rect(6, 2, 2, 2, darkSteelGray)
    @bubble2_bitmaps[1].fill_rect(2, 6, 2, 2, darkSteelGray)
    @bubble2_bitmaps[1].fill_rect(6, 4, 2, 2, midSteelGray)
    @bubble2_bitmaps[1].fill_rect(4, 6, 2, 2, midSteelGray)
    @bubble2_bitmaps[1].fill_rect(4, 4, 2, 2, lightSteelBlue)
    @bubble2_bitmaps[1].fill_rect(2, 4, 2, 2, lightSteelGray)
    @bubble2_bitmaps[1].fill_rect(4, 2, 2, 2, lightSteelGray)
    @bubble2_bitmaps[1].fill_rect(2, 2, 2, 2, transparentWhite)
    
    # third bubble 2 bitmap
    @bubble2_bitmaps[2] = Bitmap.new(8, 10)
    @bubble2_bitmaps[2].fill_rect(8, 2, 2, 4, steelBlue)
    @bubble2_bitmaps[2].fill_rect(2, 0, 8, 2, darkSteelGray)
    @bubble2_bitmaps[2].fill_rect(2, 6, 8, 2, darkSteelGray)
    @bubble2_bitmaps[2].fill_rect(4, 0, 2, 2, midSteelGray)
    @bubble2_bitmaps[2].fill_rect(4, 6, 2, 2, midSteelGray)
    @bubble2_bitmaps[2].fill_rect(0, 2, 2, 2, midSteelGray)
    @bubble2_bitmaps[2].fill_rect(0, 4, 2, 2, lightSteelBlue)
    @bubble2_bitmaps[2].fill_rect(2, 2, 6, 4, lightSteelGray)
    @bubble2_bitmaps[2].fill_rect(2, 2, 4, 2, transparentWhite)
    @bubble2_bitmaps[2].fill_rect(4, 4, 2, 2, transparentWhite)
    
    # fourth bubble 2 bitmap
    @bubble2_bitmaps[3] = Bitmap.new(14, 14)
    @bubble2_bitmaps[3].fill_rect(4, 0, 4, 2, steelBlue)
    @bubble2_bitmaps[3].fill_rect(0, 4, 2, 4, steelBlue)
    @bubble2_bitmaps[3].fill_rect(12, 4, 2, 4, steelBlue)
    @bubble2_bitmaps[3].fill_rect(8, 0, 2, 2, darkSteelGray)
    @bubble2_bitmaps[3].fill_rect(0, 6, 2, 2, darkSteelGray)
    @bubble2_bitmaps[3].fill_rect(12, 6, 2, 2, darkSteelGray)
    @bubble2_bitmaps[3].fill_rect(4, 12, 6, 2, darkSteelGray)
    @bubble2_bitmaps[3].fill_rect(8, 0, 2, 2, darkSteelGray)
    @bubble2_bitmaps[3].fill_rect(2, 2, 10, 10, midSteelGray)
    @bubble2_bitmaps[3].fill_rect(6, 12, 2, 2, midSteelGray)
    @bubble2_bitmaps[3].fill_rect(2, 4, 10, 6, lightSteelGray)
    @bubble2_bitmaps[3].fill_rect(4, 2, 2, 2, lightSteelGray)
    @bubble2_bitmaps[3].fill_rect(6, 10, 4, 2, lightSteelGray)
    @bubble2_bitmaps[3].fill_rect(6, 4, 2, 2, transparentWhite)
    @bubble2_bitmaps[3].fill_rect(4, 6, 2, 2, transparentWhite)
    
    @user_bitmaps = []
    update_user_defined
  end
  
  def update_user_defined
    for image in @user_bitmaps
      image.dispose
    end
    
    #user-defined bitmaps
    for name in $WEATHER_IMAGES
      @user_bitmaps.push(RPG::Cache.picture(name))
    end
    for sprite in @sprites
      sprite.bitmap = @user_bitmaps[rand(@user_bitmaps.size)]
    end
  end
end
------------------------여기까지-------------------------------------------------------------------
Instructions

To call the new weather, just place the following in a Script event command:

screen.weather(type, strength, fade)

Where type is the numerical type of the weather (see the script comments for types), strength is the strength of the weather and should be an integer between 0 (no weather) and 50 (heaviest weather), and fade is how many frames to take to fade in.

For example:

screen.weather(6, 25, 0)

Will start 250 autumn leaf sprites falling down the screen. smile.gif

An explanation of user-defined weather:

$WEATHER_IMAGES - The names of the images you want to use as weather images, minus the file extensions. They should be imported as Pictures.

For example:

$WEATHER_UPDATE = true
$WEATHER_IMAGES = ["rock1", "rock2", "rock3"]


The $WEATHER_UPDATE flag tells the script that the images array has changed. You only need to set it to true if you've changed this array.

$WEATHER_X and $WEATHER_Y - the number of pixels to move the image in the x & y directions each update. For example:

$WEATHER_X = -10

Will move the image fairly fast straight up.

$WEATHER_Y = 1

Will move the image slowly to the right.

$WEATHER_X = 2
$WEATHER_Y = -1

Will move the image to the lower left.

By default, both x and y movement are 0, or no movement.

$WEATHER_FADE - this is whether or not and how much you want the image to fade out. 0 is no fade, 255 is instant fade. You may need to play with this - what looks right depends on how fast your weather image is moving. By default, this is set to 0, or no fade.

$WEATHER_ANIMATED - this flag tells the script that each weather effect should cycle through all the images (see the sparkle effect for a demo of what this looks like). Just set it to true if you want to use it:

$WEATHER_ANIMATED = true
영어 잘 하는 사람은 읽을 수 있음
TAG •
Comment '9'
  • ?
    Man... 2008.10.27 18:58
    100개는 올리게 생겼음..ㅋㅋㅋ
  • ?
    독사 2009.10.11 21:59
    뭔말인지 목록보고 이해했음 ㅎㅎ
  • ?
    시옷청룡 2008.10.27 21:44
    ;ㅁ; 영어 못해서 유감..ㅋ
  • profile
    모토키 2008.10.27 22:01
    한번 해볼꼐요,
  • ?
    뽀빠잉경환♥'´ 2008.11.09 11:30
    읽으세요 ㅋㅋ
  • ?
    늑당 2008.12.23 10:59
    영어 하지만 읽기가 꺼려지네요
  • ?
    크갸갸 2009.01.04 10:36
    screen.weather(6, 25, 0)
    이런 형식의 글을 스크립트로 이벤트에 넣으면......
    날씨가 될것같은데요?
    비슷한 스크립트가 xp에 있어요
  • ?
    열겜make 2009.01.24 19:35
    날씨는 스크립트 필요없는데 ....
  • ?
    다토르 2010.07.23 13:43

    모르겠음..


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5408
637 스킬 훔치기 스킬을 만드는 스크립트! 5 우켈킁 2011.03.31 2390
636 기타 회피,명중,크리 스테이트를 작성하는 스크립트 9 카르와푸딩의아틀리에 2009.06.30 2394
635 기타 확장 에러 메시지 13 file 허걱 2009.08.17 2497
634 메뉴 확장 스테이터스 화면 - KGC 23 file 카르와푸딩의아틀리에 2009.08.19 5057
633 기타 화폐단위 구분해 주는 스크립트 38 file 허걱 2010.04.13 3652
632 이동 및 탈것 화면의 부드러운 스크롤 스크립트 32 카르와푸딩의아틀리에 2009.07.17 3821
631 기타 화면에 그림 그리는 스크립트 21 file 강진수 2010.02.27 2962
630 기타 화면 확대 스크립트 12 file 에돌이 2011.07.22 3061
629 기타 화면 해상도(640 X 480) 스크립트 6 file 쿠쿠밥솥 2012.01.10 3972
628 아이템 현재있는 파티원 선택 레벨업 아이템 만들기 1 file 싸패 2016.06.06 713
627 헬프윈도우 확장 13 file RPGbooster 2008.10.08 2872
626 메뉴 헬프 윈도우 중앙표시 스크립트 11 file 양념통닼 2008.06.10 3348
625 키입력 해외 제작자 He Who Jets님의 마우스 스크립트(mouse system) 1 file 보자기군 2014.09.30 1261
624 기타 해상도 변경 스크립트 11 카리스 2011.07.19 2723
623 스킬 합성샾 스크립트 ^^ [동영상 포함] 6 file 아방스 2008.09.23 6038
622 키입력 한글입력기(펌) 수정 10 전설의달빛조각사 2011.04.03 2674
621 이름입력 한글로 이름 입력하는 스크립트입니다. 55 file 헤르코스 2009.03.18 6662
620 이름입력 한글 이름 입력 스크립트입니다.^^ 14 레시온 2008.03.18 4383
619 액터 한계돌파(렙9999) 18 작은샛별 2010.03.07 3273
618 이동 및 탈것 피티원이 따라다니는 스크립트 38 file 아방스 2009.02.05 5024
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 32 Next
/ 32