赞 | 289 |
VIP | 0 |
好人卡 | 0 |
积分 | 85 |
经验 | 0 |
最后登录 | 2019-7-14 |
在线时间 | 775 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 8498
- 在线时间
- 775 小时
- 注册时间
- 2017-11-10
- 帖子
- 1231
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
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#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 if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 180 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
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#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
if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 180
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
这是Rmxp的流星雨脚本。
但好像无法直接运在VX。
貌似是有点设定不一样了。
不知可否通过修改脚本的方式,达到可以运行该段脚本? |
|