Project1

标题: 天气显示问题 [打印本页]

作者: 黑米馒头    时间: 2022-4-10 14:40
标题: 天气显示问题
调整了分辨率到1024X768, 发现使用气候功能的时候,显示的范围还是640X480的,然后我在气候功能那边,没看到调整范围的地方。。

QQ图片20220410144036.png (31.57 KB, 下载次数: 7)

QQ图片20220410144036.png

作者: guoxiaomi    时间: 2022-4-10 16:47
本帖最后由 guoxiaomi 于 2022-4-10 16:50 编辑

因为气候的sprite生成位置是在别的地方定义的,打开F1找到RPG::Weather一节,翻到最下面的update方法:
  1. module RPG
  2.   class Weather
  3.     def update
  4.         # ...
  5.         if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500
  6.           sprite.x = rand(800) - 50 + @ox
  7.           sprite.y = rand(800) - 200 + @oy
  8.           sprite.opacity = 255
  9.         end
  10.       end
  11.     end
  12.   end
  13. end
复制代码

我没测试过,但是把那几个0结尾的坐标边界(-50,750,-300,500,800,200)都×2可能就能解决问题了。所以你要做的就是添加以下脚本重新定义update方法:
  1. module RPG
  2.   class Weather
  3.     def update
  4.       return if @type == 0
  5.       for i in 1..@max
  6.         sprite = @sprites[i]
  7.         if sprite == nil
  8.           break
  9.         end
  10.         if @type == 1
  11.           sprite.x -= 2
  12.           sprite.y += 16
  13.           sprite.opacity -= 8
  14.         end
  15.         if @type == 2
  16.           sprite.x -= 8
  17.           sprite.y += 16
  18.           sprite.opacity -= 12
  19.         end
  20.         if @type == 3
  21.           sprite.x -= 2
  22.           sprite.y += 8
  23.           sprite.opacity -= 8
  24.         end
  25.         x = sprite.x - @ox
  26.         y = sprite.y - @oy
  27.         r = 2 # 默认 r = 1
  28.         if sprite.opacity < 64 or x < -50 * r or x > 750 * r or y < -300 * r or y > 500 * r
  29.           sprite.x = rand(800 * r) - 50 * r + @ox
  30.           sprite.y = rand(800 * r) - 200 * r + @oy
  31.           sprite.opacity = 255
  32.         end
  33.       end
  34.     end
  35.   end
  36. end
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1