Project1

标题: 【附图】图层复杂区域的难题 [打印本页]

作者: zy652301    时间: 2016-7-29 20:07
标题: 【附图】图层复杂区域的难题
本帖最后由 zy652301 于 2016-7-30 01:04 编辑

有一个 空柜子(宽1高2) 地图块,下部标记为不可通行,上部分标记为在人物上方。
现在我在柜子下部分做事件其图像为放在柜子里的东西,该事件与人物同层。
制作出后的效果略有偏差。
事件图像的一部分被空柜子地图块的上半部分挡住,因为该地图块被标记为在人物上方。
那么将事件设置为在人物上方呢?
在临近的区域会无法触发那个事件。
因此我需要这样的脚本:
能自由决定 在人物上方或是下方的事件能否在临近区域触发的脚本
感觉上面那句话说得还不够清晰。
先这样吧

如图所示
如果事件的优先级与人物同层那么最上方的盘子会被柜子图块遮挡。
但优先级在人物上方却又无法在临近位置触发事件。
因此求能够解决此问题的简单有效手段。
游戏用到这个的地方相当多,因此否决一切会使工作量大大增加的思路

作者: 七重    时间: 2016-7-29 21:04
你可以将那个图块直接P一下。

作者: zy652301    时间: 2016-7-30 00:07
@qq546431664
作者: zy652301    时间: 2016-7-30 00:54
傻得我想哭。@qq546431664
作者: garfeng    时间: 2016-7-30 01:29
事件不要放在盘子上,你这样弄,那么人在柜子的背面也可以检查盘子。
事件放在盘子下一格,没有图片,在人物下方,触发条件为回车,触发时判断人物朝向,朝上才处理调查盘子。
这样就可以不改图了。
祝好。
作者: shencao    时间: 2016-7-30 06:41
也可以整个柜子(2格)都用事件显示,调查前事件图像是有东西的柜子,调查后图像换成空柜子。
这样地图上也不用画柜子了,要修改地图布局可以拖事件,方便。缺点是编辑器里看地图效果有点不直观。
当然如果你拒绝p图那就算惹。
如果要最方便,那干脆不要画2格高的柜子或者干脆柜子后面就不能通行→__→
作者: neverstop    时间: 2016-7-30 10:57
感觉可以修改事件or人物的z值来达到效果。下面这个脚本是从V大那里找来并修改的【希望无罪。诶吗】
然后,就是设定地图里用内个彩色区域。

  1. #==============================================================================
  2. # ■ Game_CharacterBase
  3. #------------------------------------------------------------------------------
  4. #  管理地图人物的基本类。是所有地图人物类的共通父类。拥有坐标、图片等基本信息。
  5. #------------------------------------------------------------------------------
  6. # *12/12/07  By。Cinderciella
  7. #  通过对【椅子】图块设定地形标志6而让人物站在椅子上。
  8. #  此外设定为7则对人物有稍微抬起效果,相当于稍高一点点的地形之类的,设定为7。
  9. # *14/09/20
  10. #  支持所有地图人物 by:VIPArcher
  11. # *16/07/30
  12. #  修改成事件的 z 值,使得对应区域事件的z改变。 by: neverstop
  13. #  
  14. #==============================================================================
  15. $VIPArcherScript ||= {};$VIPArcherScript[:chair_z] = 20150613
  16. class Game_CharacterBase
  17.   #--------------------------------------------------------------------------
  18.   # ● 设置站在椅子上的z调整
  19.   #--------------------------------------------------------------------------
  20.   def chair_z
  21.     if event?
  22.       return 100 if move_frequency == 5
  23.       return moving? ? 100 : casetag_z
  24.     else
  25.       return casetag_z
  26.     end
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 判断地形标志返回z调整值
  30.   #--------------------------------------------------------------------------
  31.   def casetag_z
  32.     case self.region_id #对应区域。就是内彩色的块块。
  33.     when 1
  34.       return -100 #远景图
  35.     when 2
  36.       return 100 #人物原本所在
  37.     when 3
  38.       return 200 #高出100
  39.     when 10
  40.       return 0
  41.     else
  42.       return 100
  43.     end
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 获取画面 z 坐标(加上椅子高度)
  47.   #--------------------------------------------------------------------------
  48.   alias vip20150613_screen_z screen_z
  49.   def screen_z
  50.     @priority_type = chair_z
  51.   end
  52. end
复制代码

作者: m8663431    时间: 2016-7-30 13:37
这么麻烦?在柜子周围设置个透明的踩踏触发事件来出发这个有图,但内容空白的事件好了




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