加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
在VA中的检查通行度是这样的#-------------------------------------------------------------------------- # ● 通行检查 # bit : 判断通行禁止与否的字节(请参照二进制运算) #-------------------------------------------------------------------------- def check_passage(x, y, bit) all_tiles(x, y).each do |tile_id| flag = tileset.flags[tile_id] next if flag & 0x10 != 0 # [☆] : 不影响通行 return true if flag & bit == 0 # [○] : 可以通行 return false if flag & bit == bit # [×] : 不能通行 end return false # 不能通行 end
#--------------------------------------------------------------------------
# ● 通行检查
# bit : 判断通行禁止与否的字节(请参照二进制运算)
#--------------------------------------------------------------------------
def check_passage(x, y, bit)
all_tiles(x, y).each do |tile_id|
flag = tileset.flags[tile_id]
next if flag & 0x10 != 0 # [☆] : 不影响通行
return true if flag & bit == 0 # [○] : 可以通行
return false if flag & bit == bit # [×] : 不能通行
end
return false # 不能通行
end
然后对于角色和舟的通行度是这样的#-------------------------------------------------------------------------- # ● 判定普通角色是否可以通行 # d : 方向(2,4,6,8) # 判断该位置的图块指定方向的通行度。 #-------------------------------------------------------------------------- def passable?(x, y, d) check_passage(x, y, (1 << (d / 2 - 1)) & 0x0f) end #-------------------------------------------------------------------------- # ● 判定小舟是否可以通行 #-------------------------------------------------------------------------- def boat_passable?(x, y) check_passage(x, y, 0x0002) #我改过,这样可以在陆地上行走和角色一样的。 end #-------------------------------------------------------------------------- # ● 判定大船是否可以通行 #-------------------------------------------------------------------------- def ship_passable?(x, y) check_passage(x, y, 0x0400) end
#--------------------------------------------------------------------------
# ● 判定普通角色是否可以通行
# d : 方向(2,4,6,8)
# 判断该位置的图块指定方向的通行度。
#--------------------------------------------------------------------------
def passable?(x, y, d)
check_passage(x, y, (1 << (d / 2 - 1)) & 0x0f)
end
#--------------------------------------------------------------------------
# ● 判定小舟是否可以通行
#--------------------------------------------------------------------------
def boat_passable?(x, y)
check_passage(x, y, 0x0002) #我改过,这样可以在陆地上行走和角色一样的。
end
#--------------------------------------------------------------------------
# ● 判定大船是否可以通行
#--------------------------------------------------------------------------
def ship_passable?(x, y)
check_passage(x, y, 0x0400)
end
然后我要的效果是“小舟”可以在陆地上行走,并可以穿过水域(最好可以用区域或者地形标志判定?)
随便说明一下那个二进制什么的。看着不是很懂 |