Project1

标题: 请问如何判断一定范围内是否有事件 [打印本页]

作者: 上帝的眼睛    时间: 2009-9-6 17:32
标题: 请问如何判断一定范围内是否有事件
本帖最后由 上帝的眼睛 于 2009-9-6 17:34 编辑

RT,就是以角色的坐标为中心,判断
           ×
           ×
           ×
           ×
××××◎××××
           ×
           ×
           ×
           ×
(◎主角,×要判断的位置)


角色的x坐标-5..角色的x坐标+5 or 角色的y坐标-5..角色的y坐标+5
是否有事件存在
还有,判断
×××
×◎×
×××
(◎主角,×要判断的位置)
是否有事件存在
公共事件、脚本均可
作者: IamI    时间: 2009-9-6 17:36
  1. class Interpreter
  2.   def check_event(x, y, l)
  3.     for event in $game_map.events.values
  4.       if (event.x - x).abs + (event.y - y).abs <= l
  5.         return event.id
  6.       end
  7.     end
  8.     return -1
  9.   end
  10. end
复制代码
我可以……不说明吗> <
作者: 上帝的眼睛    时间: 2009-9-6 18:58
本帖最后由 上帝的眼睛 于 2009-9-6 19:40 编辑

  ×
 ×××
××◎××
 ×××
  ×
脚本的实行效果是判定如上情况下的事件是否存在
           ×
           ×
           ×
           ×
××××◎××××
           ×
           ×
           ×
           ×
嗯,这种效果怎么做到呢?
  1.     def far_check_event(x, y, l)
  2.     for event in $game_map.events.values
  3.       if ((event.x - x).abs<= l and event.y==y) or ((event.y-y).abs<=l and event.x==x)
  4.         return event.id
  5.       end
  6.     end
  7.     return -1
  8.   end
  9. end
复制代码
为什么这样写不行呢?即使事件的y坐标和主角的y坐标相同,事件靠的够近,还是不能判定,但是事件的x坐标和主角的x坐标相同,倒是可以判定……
(貌似写的有点晕了……)
[line]1[/line]
已经搞定,谢谢IamI的解答,同时对我自己的努力给予一定的肯定……--b
我写的代码原来就是因为少写了两个括号……
作者: 霜冻之狼    时间: 2009-9-6 19:33
算法的问题而已,改一改就ok了




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