Project1
标题:
无聊之作 - 天气的雨点反踞齿+新增冰雹天气
[打印本页]
作者:
3535
时间:
2007-4-5 06:29
标题:
无聊之作 - 天气的雨点反踞齿+新增冰雹天气
我看见那些雨点太假了,忍不住要改改{/tu}
顺便加个冰雹,就改几行代码而已 - -{/gg}
把Item-Cube01放到Pictures下即可{/tp}
使用时在事件输入$game_screen.weather(4, 5, 10)
5是强度可自己定
10是时间可自己定
http://rpg.blue/UP_PIC/200705/Item-Cube01.png
#==============================================================================
# ■ Weather
#------------------------------------------------------------------------------
# 处理天气的类别。
#==============================================================================
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/Item-Cube01")
@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 -= 3
sprite.y += 15
sprite.opacity -= 8
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
# 图片不透明度x,y,不透明度调整
sprite.x = rand(800) - 50 + @ox
sprite.y = rand(800) - 200 + @oy
sprite.opacity = 255
# if
end
# for
end
#update
end
# class
end
#module
end
复制代码
[本贴由 雷欧纳德 于 2007-5-31 10:12:49 进行了编辑]
作者:
3535
时间:
2007-4-5 06:29
标题:
无聊之作 - 天气的雨点反踞齿+新增冰雹天气
我看见那些雨点太假了,忍不住要改改{/tu}
顺便加个冰雹,就改几行代码而已 - -{/gg}
把Item-Cube01放到Pictures下即可{/tp}
使用时在事件输入$game_screen.weather(4, 5, 10)
5是强度可自己定
10是时间可自己定
http://rpg.blue/UP_PIC/200705/Item-Cube01.png
#==============================================================================
# ■ Weather
#------------------------------------------------------------------------------
# 处理天气的类别。
#==============================================================================
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/Item-Cube01")
@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 -= 3
sprite.y += 15
sprite.opacity -= 8
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
# 图片不透明度x,y,不透明度调整
sprite.x = rand(800) - 50 + @ox
sprite.y = rand(800) - 200 + @oy
sprite.opacity = 255
# if
end
# for
end
#update
end
# class
end
#module
end
复制代码
[本贴由 雷欧纳德 于 2007-5-31 10:12:49 进行了编辑]
作者:
魔剑美神
时间:
2007-4-5 06:33
LZ发个范例上来吧~~
作者:
3535
时间:
2007-4-5 06:41
以下引用
魔剑美神于2007-4-4 22:33:29
的发言:
LZ发个范例上来吧~~
范例工程 : http://rpg.blue/upload_program/files/Hailweather.rar
作者:
魔剑美神
时间:
2007-4-5 06:56
思路不错~鼓励一下~{/qiang}
有待改进~
作者:
莫浪语
时间:
2007-4-5 09:33
雨点最好搞成一小段上细下粗的,那个默认的太长太大了
作者:
九泪
时间:
2007-4-5 12:35
恩,现在这个区真的开始繁荣了哈~ 楼主加油~ 期待看到你更大的进步哟~{/qiang}
作者:
亿万星辰
时间:
2007-4-5 14:57
自制天气......{/pz}
作者:
小傻瓜
时间:
2007-4-5 20:55
提示:
作者被禁止或删除 内容自动屏蔽
作者:
3535
时间:
2007-4-6 01: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
作者:
gpra8764
时间:
2007-4-7 23:55
提示:
作者被禁止或删除 内容自动屏蔽
作者:
RXVincent
时间:
2007-6-25 06:23
{/jy}哦,怎样停止冰雹?
作者:
菜鸟笨鸟傻鸟
时间:
2008-1-20 01:36
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1