def is_in_verge?(x,y)
x1 = 0...$game_map.width
y1 = 0...$game_map.height
if x1.include?(x) and (y == 0 or y == $game_map.height-1)
return true
elsif y1.include?(y) and (x == 0 or x == $game_map.width-1)
return true
end
return false
end
def is_in_verge?(x,y)
x1 = 0...$game_map.width
y1 = 0...$game_map.height
if x1.include?(x) and (y == 0 or y == $game_map.height-1)
return true
elsif y1.include?(y) and (x == 0 or x == $game_map.width-1)
return true
end
return false
end
include? 是线性搜索,这样判断影响效率诶~
直接判断 x == 0 or x == $game_map.width - 1 即可,高度也同理,然后把这个函数放到 Interpreter 中,就能直接在事件脚本中调用了:
class Interpreter
def is_in_verge?(x, y)
...
end
end
class Interpreter
def is_in_verge?(x, y)
if x == 0 or x == $game_map.width - 1
return false
elsif y == 0 or y == $game_map.height - 1
return false
else
return true
end
end
end