赞 | 400 |
VIP | 0 |
好人卡 | 24 |
积分 | 250 |
经验 | 45372 |
最后登录 | 2024-7-2 |
在线时间 | 3339 小时 |
Lv5.捕梦者 (版主)
- 梦石
- 1
- 星屑
- 23994
- 在线时间
- 3339 小时
- 注册时间
- 2011-7-8
- 帖子
- 3926
|
本帖最后由 guoxiaomi 于 2022-4-10 16:50 编辑
因为气候的sprite生成位置是在别的地方定义的,打开F1找到RPG::Weather一节,翻到最下面的update方法:- module RPG
- class Weather
- def update
- # ...
- 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
- end
- end
复制代码
我没测试过,但是把那几个0结尾的坐标边界(-50,750,-300,500,800,200)都×2可能就能解决问题了。所以你要做的就是添加以下脚本重新定义update方法:
- module RPG
- class Weather
- 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
- r = 2 # 默认 r = 1
- if sprite.opacity < 64 or x < -50 * r or x > 750 * r or y < -300 * r or y > 500 * r
- sprite.x = rand(800 * r) - 50 * r + @ox
- sprite.y = rand(800 * r) - 200 * r + @oy
- sprite.opacity = 255
- end
- end
- end
- end
- end
复制代码 |
|