| 赞 | 402 |
| VIP | |
| 好人卡 | |
| 积分 | 251 |
| 经验 | |
| 最后登录 | 2024-7-2 |
| 在线时间 | 3339 小时 |
- 梦石
- 1
- 星屑
- 24088
- 在线时间
- 3339 小时
- 注册时间
- 2011-7-8
- 回帖
- 3862

|
发表于 2022-4-10 16:47:15
|
显示全部楼层
本帖最后由 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
复制代码 |
评分
-
查看全部评分
|