Project1
标题:
请教一个 天气 问题
[打印本页]
作者:
holmes4869
时间:
2007-7-16 03:57
标题:
请教一个 天气 问题
在下雪天气里,雪花太
小
,太
少
,怎么才能把雪做
大
做
多
? [LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
holmes4869
时间:
2007-7-16 03:57
标题:
请教一个 天气 问题
在下雪天气里,雪花太
小
,太
少
,怎么才能把雪做
大
做
多
? [LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
K’
时间:
2007-7-16 05:12
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, 56)
for i in 0..6
@rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
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)
@sprites = []
for i in 1..400
sprite = Sprite.new(viewport)
sprite.z = 1000
sprite.visible = false
sprite.opacity = 0
@sprites.push(sprite)
end
end
def dispose
for sprite in @sprites
sprite.dispose
end
@rain_bitmap.dispose
@storm_bitmap.dispose
@snow_bitmap.dispose
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
else
bitmap = nil
end
for i in 1..400
sprite = @sprites[i]
if sprite != nil
sprite.visible = (i <= @max)
sprite.bitmap = bitmap
end
end
end
def ox=(ox)
return if @ox == ox;
@ox = ox
for sprite in @sprites
sprite.ox = @ox
end
end
def oy=(oy)
return if @oy == oy;
@oy = oy
for sprite in @sprites
sprite.oy = @oy
end
end
def max=(max)
return if @max == max;
@max = [[max, 0].max, 400].min
for i in 1..400
sprite = @sprites[i]
if sprite != nil
sprite.visible = (i <= @max)
end
end
end
def update
return if @type == 0
for i in 1..@max
sprite = @sprites[i]
if sprite == nil
break
end
if @type == 1
sprite.x -= 2
sprite.y += 16
sprite.opacity -= 8
end
if @type == 2
sprite.x -= 8
sprite.y += 16
sprite.opacity -= 12
end
if @type == 3
sprite.x -= 2
sprite.y += 8
sprite.opacity -= 8
end
x = sprite.x - @ox
y = sprite.y - @oy
if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500
sprite.x = rand(800) - 50 + @ox
sprite.y = rand(800) - 200 + @oy
sprite.opacity = 255
end
end
end
attr_reader :type
attr_reader :max
attr_reader :ox
attr_reader :oy
end
end
复制代码
之后 Game_Screen中 @weather_max_target = (power + 1) * 4.0
改成 @weather_max_target = (power + 1) * 400.0
好了 开始感受漫天的大雪吧。 [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
holmes4869
时间:
2007-7-16 07:00
{/dk}哥哥,我是代码苦手,可不可以给我一个直接可以用的,再详细地教教弟弟我{/ll}
作者:
K’
时间:
2007-7-16 15:04
前面一个放到main前面 后边就改一句话都不会么{/fd}
作者:
精灵使者
时间:
2007-7-16 16:18
漫天大雪……谢了,多谢老大指教!
作者:
holmes4869
时间:
2007-7-16 19:10
谢谢!{/wx}终于会了!{/qiang}
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1