设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 5475|回复: 12
打印 上一主题 下一主题

无聊之作 - 天气的雨点反踞齿+新增冰雹天气

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
142
在线时间
264 小时
注册时间
2006-11-22
帖子
1057
跳转到指定楼层
1
发表于 2007-4-5 06:29:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
我看见那些雨点太假了,忍不住要改改{/tu}
顺便加个冰雹,就改几行代码而已 - -{/gg}
把Item-Cube01放到Pictures下即可{/tp}
使用时在事件输入$game_screen.weather(4, 5, 10)
5是强度可自己定
10是时间可自己定
http://rpg.blue/UP_PIC/200705/Item-Cube01.png

  1. #==============================================================================
  2. # ■ Weather
  3. #------------------------------------------------------------------------------
  4. #  处理天气的类别。
  5. #==============================================================================
  6. module RPG
  7.   class Weather
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化物件
  10.   #--------------------------------------------------------------------------
  11.     def initialize(viewport = nil)
  12.       # 天气类型
  13.       @type = 0
  14.       @max = 0
  15.       @ox = 0
  16.       @oy = 0
  17.       color1 = Color.new(255, 255, 255, 255)
  18.       color2 = Color.new(255, 255, 255, 128)
  19.       # 雨
  20.       @rain_bitmap = Bitmap.new(7, 30)
  21.       for i in 0..6
  22.         @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  23.         @rain_bitmap.fill_rect(5-i, i*10, 1, 8, color2)
  24.       end
  25.       # 风
  26.       @storm_bitmap = Bitmap.new(34, 64)
  27.       for i in 0..31
  28.         @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  29.         @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  30.         @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  31.       end
  32.       # 雪
  33.       @snow_bitmap = Bitmap.new(6, 6)
  34.       @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  35.       @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  36.       @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  37.       @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  38.       # 冰雹
  39.       @Hail_bitmap = Bitmap.new("Graphics/Pictures/Item-Cube01")
  40.       @sprites = []
  41.       for i in 1..40
  42.         sprite = Sprite.new(viewport)
  43.         sprite.z = 1000
  44.         sprite.visible = false
  45.         sprite.opacity = 0
  46.         @sprites.push(sprite)
  47.         # for
  48.       end
  49.       # initialize
  50.     end
  51.   #--------------------------------------------------------------------------
  52.   # ● 设定天气类型
  53.   #--------------------------------------------------------------------------
  54.     def type=(type)
  55.       return if @type == type
  56.       @type = type
  57.       # 分歧-天气类型
  58.       case @type
  59.       # 雨
  60.       when 1
  61.         bitmap = @rain_bitmap
  62.         # 风
  63.       when 2
  64.         bitmap = @storm_bitmap
  65.         # 雪
  66.       when 3
  67.         bitmap = @snow_bitmap
  68.         # 冰雹
  69.       when 4
  70.         bitmap = @Hail_bitmap
  71.         # 类型在 1234 以外的场合
  72.       else
  73.         # bitmap = 空
  74.         bitmap = nil
  75.       end
  76.       for i in 1..40
  77.         sprite = @sprites[i]
  78.         # 如bitmap非空
  79.         if sprite != nil
  80.           sprite.visible = (i <= @max)
  81.           sprite.bitmap = bitmap
  82.         end
  83.       end
  84.     end
  85.   #--------------------------------------------------------------------------
  86.   # ● 更新画面
  87.   #--------------------------------------------------------------------------
  88.     def update
  89.       # 如天气类型等于 0 则返回
  90.       return if @type == 0
  91.       for i in 1..@max
  92.         sprite = @sprites[i]
  93.         # 如sprite等于空
  94.         if sprite == nil
  95.           # 中断循环
  96.           break
  97.         end
  98.         # 如天气类型等于 1
  99.         if @type == 1
  100.           sprite.x -= 2
  101.           sprite.y += 16
  102.           sprite.opacity -= 8
  103.         end
  104.         # 如天气类型等于 2
  105.         if @type == 2
  106.           sprite.x -= 8
  107.           sprite.y += 16
  108.           sprite.opacity -= 12
  109.         end
  110.         # 如天气类型等于 3
  111.         if @type == 3
  112.           sprite.x -= 2
  113.           sprite.y += 8
  114.           sprite.opacity -= 8
  115.         end
  116.         # 如天气类型等于 4
  117.         if @type == 4
  118.           sprite.x -= 3
  119.           sprite.y += 15
  120.           sprite.opacity -= 8
  121.         end
  122.         x = sprite.x - @ox
  123.         y = sprite.y - @oy
  124.         # 如天气图片不透明度小于 64 或 x 小于 -50 或 x 大于 750 或 y 小于 -300 或 y 大于 500
  125.         if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500
  126.           # 图片不透明度x,y,不透明度调整
  127.           sprite.x = rand(800) - 50 + @ox
  128.           sprite.y = rand(800) - 200 + @oy
  129.           sprite.opacity = 255
  130.           # if
  131.         end
  132.         # for
  133.       end
  134.       #update
  135.     end
  136.     # class
  137.   end
  138.   #module
  139. end
复制代码


              [本贴由 雷欧纳德 于 2007-5-31 10:12:49 进行了编辑]

Lv1.梦旅人

梦石
0
星屑
142
在线时间
264 小时
注册时间
2006-11-22
帖子
1057
2
 楼主| 发表于 2007-4-5 06:29:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
我看见那些雨点太假了,忍不住要改改{/tu}
顺便加个冰雹,就改几行代码而已 - -{/gg}
把Item-Cube01放到Pictures下即可{/tp}
使用时在事件输入$game_screen.weather(4, 5, 10)
5是强度可自己定
10是时间可自己定
http://rpg.blue/UP_PIC/200705/Item-Cube01.png

  1. #==============================================================================
  2. # ■ Weather
  3. #------------------------------------------------------------------------------
  4. #  处理天气的类别。
  5. #==============================================================================
  6. module RPG
  7.   class Weather
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化物件
  10.   #--------------------------------------------------------------------------
  11.     def initialize(viewport = nil)
  12.       # 天气类型
  13.       @type = 0
  14.       @max = 0
  15.       @ox = 0
  16.       @oy = 0
  17.       color1 = Color.new(255, 255, 255, 255)
  18.       color2 = Color.new(255, 255, 255, 128)
  19.       # 雨
  20.       @rain_bitmap = Bitmap.new(7, 30)
  21.       for i in 0..6
  22.         @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  23.         @rain_bitmap.fill_rect(5-i, i*10, 1, 8, color2)
  24.       end
  25.       # 风
  26.       @storm_bitmap = Bitmap.new(34, 64)
  27.       for i in 0..31
  28.         @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  29.         @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  30.         @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  31.       end
  32.       # 雪
  33.       @snow_bitmap = Bitmap.new(6, 6)
  34.       @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  35.       @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  36.       @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  37.       @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  38.       # 冰雹
  39.       @Hail_bitmap = Bitmap.new("Graphics/Pictures/Item-Cube01")
  40.       @sprites = []
  41.       for i in 1..40
  42.         sprite = Sprite.new(viewport)
  43.         sprite.z = 1000
  44.         sprite.visible = false
  45.         sprite.opacity = 0
  46.         @sprites.push(sprite)
  47.         # for
  48.       end
  49.       # initialize
  50.     end
  51.   #--------------------------------------------------------------------------
  52.   # ● 设定天气类型
  53.   #--------------------------------------------------------------------------
  54.     def type=(type)
  55.       return if @type == type
  56.       @type = type
  57.       # 分歧-天气类型
  58.       case @type
  59.       # 雨
  60.       when 1
  61.         bitmap = @rain_bitmap
  62.         # 风
  63.       when 2
  64.         bitmap = @storm_bitmap
  65.         # 雪
  66.       when 3
  67.         bitmap = @snow_bitmap
  68.         # 冰雹
  69.       when 4
  70.         bitmap = @Hail_bitmap
  71.         # 类型在 1234 以外的场合
  72.       else
  73.         # bitmap = 空
  74.         bitmap = nil
  75.       end
  76.       for i in 1..40
  77.         sprite = @sprites[i]
  78.         # 如bitmap非空
  79.         if sprite != nil
  80.           sprite.visible = (i <= @max)
  81.           sprite.bitmap = bitmap
  82.         end
  83.       end
  84.     end
  85.   #--------------------------------------------------------------------------
  86.   # ● 更新画面
  87.   #--------------------------------------------------------------------------
  88.     def update
  89.       # 如天气类型等于 0 则返回
  90.       return if @type == 0
  91.       for i in 1..@max
  92.         sprite = @sprites[i]
  93.         # 如sprite等于空
  94.         if sprite == nil
  95.           # 中断循环
  96.           break
  97.         end
  98.         # 如天气类型等于 1
  99.         if @type == 1
  100.           sprite.x -= 2
  101.           sprite.y += 16
  102.           sprite.opacity -= 8
  103.         end
  104.         # 如天气类型等于 2
  105.         if @type == 2
  106.           sprite.x -= 8
  107.           sprite.y += 16
  108.           sprite.opacity -= 12
  109.         end
  110.         # 如天气类型等于 3
  111.         if @type == 3
  112.           sprite.x -= 2
  113.           sprite.y += 8
  114.           sprite.opacity -= 8
  115.         end
  116.         # 如天气类型等于 4
  117.         if @type == 4
  118.           sprite.x -= 3
  119.           sprite.y += 15
  120.           sprite.opacity -= 8
  121.         end
  122.         x = sprite.x - @ox
  123.         y = sprite.y - @oy
  124.         # 如天气图片不透明度小于 64 或 x 小于 -50 或 x 大于 750 或 y 小于 -300 或 y 大于 500
  125.         if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500
  126.           # 图片不透明度x,y,不透明度调整
  127.           sprite.x = rand(800) - 50 + @ox
  128.           sprite.y = rand(800) - 200 + @oy
  129.           sprite.opacity = 255
  130.           # if
  131.         end
  132.         # for
  133.       end
  134.       #update
  135.     end
  136.     # class
  137.   end
  138.   #module
  139. end
复制代码


              [本贴由 雷欧纳德 于 2007-5-31 10:12:49 进行了编辑]

Lv1.梦旅人

秀逗の魔导士

梦石
0
星屑
50
在线时间
5 小时
注册时间
2006-10-25
帖子
2000

贵宾

3
发表于 2007-4-5 06:33:29 | 只看该作者
LZ发个范例上来吧~~
漂流的日子…
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
142
在线时间
264 小时
注册时间
2006-11-22
帖子
1057
4
 楼主| 发表于 2007-4-5 06:41:11 | 只看该作者
以下引用魔剑美神于2007-4-4 22:33:29的发言:

LZ发个范例上来吧~~

范例工程 : http://rpg.blue/upload_program/files/Hailweather.rar
回复 支持 反对

使用道具 举报

Lv1.梦旅人

秀逗の魔导士

梦石
0
星屑
50
在线时间
5 小时
注册时间
2006-10-25
帖子
2000

贵宾

5
发表于 2007-4-5 06:56:21 | 只看该作者
思路不错~鼓励一下~{/qiang}

有待改进~
漂流的日子…
回复 支持 反对

使用道具 举报

Lv1.梦旅人

本尊<

梦石
0
星屑
50
在线时间
2 小时
注册时间
2006-11-21
帖子
799

贵宾

6
发表于 2007-4-5 09:33:18 | 只看该作者
雨点最好搞成一小段上细下粗的,那个默认的太长太大了
黑羽毛
回复 支持 反对

使用道具 举报

Lv1.梦旅人

NewS-

梦石
0
星屑
50
在线时间
5 小时
注册时间
2005-10-23
帖子
3651

贵宾

7
发表于 2007-4-5 12:35:12 | 只看该作者
恩,现在这个区真的开始繁荣了哈~ 楼主加油~ 期待看到你更大的进步哟~{/qiang}
66RPG,这几个简单字符,之于我代表了什么?泪泪博客:http://hi.baidu.com/rpgmakerxp
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
270
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

8
发表于 2007-4-5 14:57:16 | 只看该作者
自制天气......{/pz}
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
1 小时
注册时间
2006-7-21
帖子
714
9
发表于 2007-4-5 20:55:40 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
142
在线时间
264 小时
注册时间
2006-11-22
帖子
1057
10
 楼主| 发表于 2007-4-6 01:38:38 | 只看该作者
小改动{/hx}
# 雨
      @rain_bitmap = Bitmap.new(7, 30)
      for i in 0..6
        @rain_bitmap.fill_rect(6-i, i*8, 1.2, 8, color1)
        @rain_bitmap.fill_rect(5-i, i*10, 1.5, 10, color2)
        @rain_bitmap.fill_rect(7-i, i*5.2, 1.6, 8, color1)
      end
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-24 02:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表