| 
 
| 赞 | 0 |  
| VIP | 20 |  
| 好人卡 | 7 |  
| 积分 | 1 |  
| 经验 | 20823 |  
| 最后登录 | 2019-7-12 |  
| 在线时间 | 211 小时 |  
 Lv1.梦旅人 
	梦石0 星屑79 在线时间211 小时注册时间2010-8-21帖子442 | 
| 虽然我没玩过LZ提到的游戏,但我的回答应该有些帮助 如果说要改标题选项的话,可以采用图片标题,这个搜一下就有了
 也可以采用事件标题,这个处理的效果更佳,这个范例和一个小小的教程
 然后是叶子的问题,那个应该是类似流星雨的标题,如果是图片标题整合的流星雨的话那个容易搜,只要把那个流星雨图片改成叶子即可
 事件标题的流星雨我刚好有脚本,将叶子图片命名为star,在事件标题那里调用脚本$game_screen.weather(4, 5, 10)
 $game_screen.weather(0, 0, 0)则是无效果,这个可以拿来取消那个流星雨效果
 复制代码module RPG
class Weather
#--------------------------------------------------------------------------
# ● 初始化物件
#--------------------------------------------------------------------------
   def initialize(viewport = nil)
     # 天气类型
     @type = 0
     @max = 0
     @ox = 0
     @oy = 0
     color1 = Color.new(255, 255, 255, 255)
     color2 = Color.new(255, 255, 255, 128)
     # 雨
     @rain_bitmap = Bitmap.new(7, 30)
     for i in 0..6
       @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
       @rain_bitmap.fill_rect(5-i, i*10, 1, 8, color2)
     end
     # 风
     @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)
     # 流星
     @Hail_bitmap = Bitmap.new("Graphics/Pictures/star")
     @sprites = []
     for i in 1..40
       sprite = Sprite.new(viewport)
       sprite.z = 1000
       sprite.visible = false
       sprite.opacity = 0
       @sprites.push(sprite)
       # for
     end
     # initialize
   end
#--------------------------------------------------------------------------
# ● 设定天气类型
#--------------------------------------------------------------------------
   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
       bitmap = @Hail_bitmap
       # 类型在 1234 以外的场合
     else
       # bitmap = 空
       bitmap = nil
     end
     for i in 1..40
       sprite = @sprites[i]
       # 如bitmap非空
       if sprite != nil
         sprite.visible = (i <= @max)
         sprite.bitmap = bitmap
       end
     end
   end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
   def update
     # 如天气类型等于 0 则返回
     return if @type == 0
     for i in 1..@max
       sprite = @sprites[i]
       # 如sprite等于空
       if sprite == nil
         # 中断循环
         break
       end
       # 如天气类型等于 1
       if @type == 1
         sprite.x -= 2
         sprite.y += 16
         sprite.opacity -= 8
       end
       # 如天气类型等于 2
       if @type == 2
         sprite.x -= 8
         sprite.y += 16
         sprite.opacity -= 12
       end
       # 如天气类型等于 3
       if @type == 3
         sprite.x -= 2
         sprite.y += 8
         sprite.opacity -= 8
       end
       # 如天气类型等于 4
       if @type == 4
         sprite.x -= 5
         sprite.y += 5
         sprite.opacity -= 2
       end
       x = sprite.x - @ox
       y = sprite.y - @oy
       # 如天气图片不透明度小于 64 或 x 小于 -50 或 x 大于 750 或 y 小于 -300 或 y 大于 500
       if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500
       case @type
      when 4
         # 图片不透明度x,y,不透明度调整
         sprite.x = rand(1200) + 100 + @ox
         sprite.y = rand(600) - 600 + @oy
         sprite.opacity = 255
       else
        sprite.x = rand(800) - 50 + @ox
         sprite.y = rand(800) - 200 + @oy
         sprite.opacity = 255
            end
         # if
       end
       # for
     end
     #update
   end
   # class
end
#module
end
 | 
 评分
查看全部评分
 |