加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
SHOOT执行后不是应该执行等待120贞吗
def move_type_toward_event(event_id, sight = 20, ai = 6) # 指定自身的情况下不执行动作 if event_id == self.id return end # 求得与主角坐标的差 sx = @x - $game_map.events[event_id].x sy = @y - $game_map.events[event_id].y # 求得差的绝对值 abs_sx = sx > 0 ? sx : -sx abs_sy = sy > 0 ? sy : -sy # 如果方圆超过了视野 if abs_sx ** 2 + abs_sy ** 2 >= sight ** 2 return end if abs_sx <= 1 and abs_sy <= 1 shoot(176) @wait_count = 120 end # 横距离与纵距离相等的情况下 if abs_sx == abs_sy # 随机将边数增加 1 rand(2) == 0 ? abs_sx += 1 : abs_sy += 1 end # 横侧距离长的情况下 if abs_sx > abs_sy # 左右方向优先。向事件移动 sx > 0 ? move_left : move_right if not moving? and sy != 0 sy > 0 ? move_up : move_down end # 竖侧距离长的情况下 else # 上下方向优先。向事件移动 sy > 0 ? move_up : move_down if not moving? and sx != 0 sx > 0 ? move_left : move_right end end end
def move_type_toward_event(event_id, sight = 20, ai = 6)
# 指定自身的情况下不执行动作
if event_id == self.id
return
end
# 求得与主角坐标的差
sx = @x - $game_map.events[event_id].x
sy = @y - $game_map.events[event_id].y
# 求得差的绝对值
abs_sx = sx > 0 ? sx : -sx
abs_sy = sy > 0 ? sy : -sy
# 如果方圆超过了视野
if abs_sx ** 2 + abs_sy ** 2 >= sight ** 2
return
end
if abs_sx <= 1 and abs_sy <= 1
shoot(176)
@wait_count = 120
end
# 横距离与纵距离相等的情况下
if abs_sx == abs_sy
# 随机将边数增加 1
rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
end
# 横侧距离长的情况下
if abs_sx > abs_sy
# 左右方向优先。向事件移动
sx > 0 ? move_left : move_right
if not moving? and sy != 0
sy > 0 ? move_up : move_down
end
# 竖侧距离长的情况下
else
# 上下方向优先。向事件移动
sy > 0 ? move_up : move_down
if not moving? and sx != 0
sx > 0 ? move_left : move_right
end
end
end
|