Project1

标题: 下雨,想屋里范圍不显雨的功能, [打印本页]

作者: ppspssss    时间: 2019-4-11 23:02
标题: 下雨,想屋里范圍不显雨的功能,
RM好像天氣係統要么覆蓋要么压在下面,没有部份不显示功能
如果要做这样, 大慨是图片中央一个矩形不显該图片部分,太晚了腦子不太好使,描寫問題有点不清楚 , 看得懂就看,

作者: 89444640    时间: 2019-4-12 06:18
这个效果很实用,尤其做横版场景时候,
是不是可以用脚本,计算出矩形起点终点,然后让这个范围不显示默认的四个天气效果,或者强制这个范围原件z数值大于雨的z数值?
作者: guoxiaomi    时间: 2019-4-12 15:58
本帖最后由 guoxiaomi 于 2019-4-18 01:00 编辑

这个好像不难做,印象中雨雪的绘制是在rgss里做的。

打开F1的RPG::Weather类,可以清楚的看到class Weather 中的 update方法,只要对此方法进行修改即可:
  1. module RPG
  2.   class Weather
  3.     def sprite_inhouse?(sprite, x, y, w, h)
  4.       sprite.x > x && sprite.x < x + w && sprite.y > y && sprite.y < y + h
  5.     end
  6.     alias _outdoor_update update
  7.     def update
  8.       r = _outdoor_update
  9.       return if r == nil
  10.       for sprite in @sprites        
  11.         if sprite_inhouse?(sprite, *$game_map.room_rect)
  12.           sprite.opacity = 0
  13.         end
  14.       end
  15.     end
  16.   end
  17. end
  18. class Game_Map
  19.   def room_rect
  20.     case @map_id
  21.     when 1 then [32*6, 32*1, 32*7, 32*12]
  22.     when 2 then [64, 64, 256, 128]
  23.     else
  24.       [0, 0, 0, 0]
  25.     end
  26.   end
  27. end
复制代码

请在room_rect里添加对应的id和[x, y, width, height],可能需要微调。测试只要不把强度提升到9(max)就没问题:







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