Project1

标题: 地图通行度没问题,为什么无法移动?BUG? [打印本页]

作者: 若得若失    时间: 2016-11-3 10:25
标题: 地图通行度没问题,为什么无法移动?BUG?
地图图块通行度没问题,但是为什么无法移动?BUG?
作者: QQ蚊子湯    时间: 2016-11-3 10:27
有自動處理事件?
作者: RaidenInfinity    时间: 2016-11-3 10:58
本帖最后由 RaidenInfinity 于 2016-11-3 14:21 编辑

建议检查上层(B~E图块)是否存在透明但不可通行的图块。用B图块的左上角(0号图块)“扫”一次,清除上层的图块。
作者: 黄谊洲    时间: 2016-11-9 02:19
打开图块,把B组的第一个设置为可通行。
作者: VIPArcher    时间: 2016-11-9 07:51
请看推荐问答:https://rpg.blue/forum.php?mod=viewthread&tid=365962
作者: RaidenInfinity    时间: 2016-11-9 23:48
4楼的回答有明确的误导性。11/9增修前的版规提到“请勿使用肯定的语气”发表不明确,模棱两可的回答。(增修后不允许)

VA的图块设置有O,X和星三种。O为可通行,X为不可通行,而星号是B~E(上层)图块特有的,表示不影响下层(A图块)的通行度
意思就是,如果下层是X而上层是星,那么这层仍然是不可通行的。下层是O,上层是星,那么就可以通行。

B图块左上角的空图块(它的ID是0号)的默认通行度是。这是要让空着的上层图块不影响下层图块的通行度。
如果把它设置为不可通行(X),会导致所有没有画着上层图块的部分无法通行。
反之,如果设置为可通行(O),则会导致所有没有画着上层图块的部分可以通行,就算原本A图块是设置不可通行的

Game_Map里面检查通行度的check_passage方法定义:
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 通行检查
  3.   #     bit : 判断通行禁止与否的字节(请参照二进制运算)
  4.   #--------------------------------------------------------------------------
  5.   def check_passage(x, y, bit)
  6.     all_tiles(x, y).each do |tile_id|
  7.       flag = tileset.flags[tile_id]
  8.       next if flag & 0x10 != 0            # [☆] : 不影响通行
  9.       return true  if flag & bit == 0     # [○] : 可以通行
  10.       return false if flag & bit == bit   # [×] : 不能通行
  11.     end
  12.     return false                          # 不能通行
  13.   end


基于楼主在提问内提供的资讯,“通行度没问题”。那么如果这个B图块的左上角,的确是画上了星号,那么就该考虑下我在3楼所发表的方案了。

最后,建议楼主读一下增修后的版规,尤其是A8部分,以免遭遇原本可以避免的麻烦。





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