加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 kk9911 于 2016-3-9 00:35 编辑
#--------------------------------------------------------------------------
# ● 可以通行判定
# x : X 坐标
# y : Y 坐标
# flag : 通行度标志(非交通工具时,一般为 0x01)
#--------------------------------------------------------------------------
def passable?( x, y, flag = 0x01)
for event in events_xy( x, y) # 循环指定位置的事件数组
next if event.tile_id == 0 # 事件图片非图块的情况下
next if event.priority_type > 0 # 非「一般角色之下」
next if event.through # 允许穿透
pass = @passages [ event.tile_id ] # 获取通行属性
next if pass & 0x10 == 0x10 # ☆: 不影响通行判定
return true if pass & flag == 0x00 # ○: 可以通行
return false if pass & flag == flag # x: 不可通行
end
for i in [ 2 , 1 , 0 ] # 由上层而下
tile_id = @map .data [ x, y, i] # 获取图块 ID
return false if tile_id == nil # 无法获取图块:不可通行
pass = @passages [ tile_id] # 获取通行属性
next if pass & 0x10 == 0x10 # ☆: 不影响通行判定
return true if pass & flag == 0x00 # o: 可以通行
return false if pass & flag == flag # x: 不可通行
end
return false # 不可通行
end
#--------------------------------------------------------------------------
# ● 可以通行判定
# x : X 坐标
# y : Y 坐标
# flag : 通行度标志(非交通工具时,一般为 0x01)
#--------------------------------------------------------------------------
def passable?( x, y, flag = 0x01)
for event in events_xy( x, y) # 循环指定位置的事件数组
next if event.tile_id == 0 # 事件图片非图块的情况下
next if event.priority_type > 0 # 非「一般角色之下」
next if event.through # 允许穿透
pass = @passages [ event.tile_id ] # 获取通行属性
next if pass & 0x10 == 0x10 # ☆: 不影响通行判定
return true if pass & flag == 0x00 # ○: 可以通行
return false if pass & flag == flag # x: 不可通行
end
for i in [ 2 , 1 , 0 ] # 由上层而下
tile_id = @map .data [ x, y, i] # 获取图块 ID
return false if tile_id == nil # 无法获取图块:不可通行
pass = @passages [ tile_id] # 获取通行属性
next if pass & 0x10 == 0x10 # ☆: 不影响通行判定
return true if pass & flag == 0x00 # o: 可以通行
return false if pass & flag == flag # x: 不可通行
end
return false # 不可通行
end
以上的“if pass & 0x10 == 0x10””if pass & flag == 0x00“ ”if pass & flag == flag“是什么意思
“pass = @passages[event.tile_id] # 获取通行属性”这个pass实际取到的是什么数值