Project1

标题: 天气的设置 [打印本页]

作者: 音纯    时间: 2012-5-9 16:04
标题: 天气的设置
我想下雨
怎样把雨下在场景里
怎样下雨 怎样停雨
?????
怎样弄的?dsu_plus_rewardpost_czw
作者: 虚无丶    时间: 2012-5-9 16:11
事件执行页第二页里有天气设置。
通过那个改变天气。
选择无就是没有天气影响
作者: lsu666666    时间: 2012-5-9 16:16
  
用公共事件制作的下雨,打雷效果
http://rpg.blue/thread-168115-1-1.html

  {:2_273:}
作者: 春风莉露    时间: 2012-5-9 18:13
喔喔
事件执行第2页里设置。
无代表没有天气,时间代表天气出现需要等待的时间。
强度是天气的强度,好像暂时只能用雨!






作者: hys111111    时间: 2012-5-9 18:39
本帖最后由 hys111111 于 2012-5-9 21:31 编辑

首先,在Scene XXX里面加上这一段(不要加在def里面)
  1.   WEATHER = 4  # 天气类型(0:无,1:雨,2:暴风雨,3:雪)。
  2.   MAXNUMBER = 18  # 天气图片数量
复制代码
1、天气自定义的话,WEATHER那里自己填
2、和地图天气一样的话,WEATHER = $game_screen.weather_type


然后在def main下加上这段
  1.     color1 = Color.new(255, 255, 255, 255)
  2.     color2 = Color.new(255, 255, 255, 128)
  3.     @rain_bitmap = Bitmap.new(7, 56)
  4.     for i in 0..6
  5.       @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  6.     end
  7.     @storm_bitmap = Bitmap.new(34, 64)
  8.     for i in 0..31
  9.       @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  10.       @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  11.       @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  12.     end
  13.     @snow_bitmap = Bitmap.new(6, 6)
  14.     @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  15.     @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  16.     @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  17.     @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  18.     #————————————————————添加部分↓
  19.     @balloon_flower_bitmap = Bitmap.new("Graphics/Pictures/道拉基-紫色.png")
  20.     #————————————————————添加部分↑
  21.     @sprites = []
  22.     for i in 1..40
  23.       sprite = Sprite.new
  24.       case WEATHER
  25.       when 1
  26.         sprite.bitmap = @rain_bitmap
  27.       when 2
  28.         sprite.bitmap = @storm_bitmap
  29.       when 3
  30.         sprite.bitmap = @snow_bitmap
  31.       when 4 #添加部分(道拉基)
  32.         sprite.bitmap = @balloon_flower_bitmap
  33.       end
  34.       sprite.z = 1000
  35.       sprite.x = -1000
  36.       sprite.y = -1000
  37.       sprite.visible = (i <= MAXNUMBER)
  38.       sprite.blend_type = 1
  39.       sprite.opacity = 255
  40.       @sprites.push(sprite)
  41.     end
  42.     weather_update
复制代码
然后,加上一个def进去:
  1. #--------------------------------------------------------------------------
  2.   # ● 刷新天气
  3.   #--------------------------------------------------------------------------
  4.   def weather_update
  5.     return if WEATHER == 0
  6.     for i in 1..MAXNUMBER
  7.       sprite = @sprites[i]
  8.       if sprite == nil
  9.         break
  10.       end
  11.       if WEATHER == 1
  12.         sprite.x -= 2
  13.         sprite.y += 16
  14.         sprite.opacity -= 8
  15.       end
  16.       if WEATHER == 2
  17.         sprite.x -= 8
  18.         sprite.y += 16
  19.         sprite.opacity -= 12
  20.       end
  21.       if WEATHER == 3
  22.         sprite.x -= 2
  23.         sprite.y += 8
  24.         sprite.opacity -= 8
  25.       end
  26.       #————————————————————添加部分↓
  27.       if WEATHER == 4
  28.         sprite.x -= 16
  29.         sprite.y += 4
  30.         sprite.opacity -= 2
  31.       end
  32.       #————————————————————添加部分↑
  33.       x = sprite.x - @ox
  34.       y = sprite.y - @oy
  35.       if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500
  36.         sprite.x = rand(800) - 50 + @ox
  37.         sprite.y = rand(800) - 200 + @oy
  38.         sprite.opacity = 255
  39.       end
  40.     end
  41.   end
复制代码
最后在def update下加上:
weather_update
完成……




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