Project1

标题: 两个事件块之间碰撞怎么做? [打印本页]

作者: killkill2298    时间: 2009-7-30 14:52
标题: 两个事件块之间碰撞怎么做?
比如我想让任意两个敌人碰到了(相邻)就触发事件怎么做
难道要用变量记录每个敌人的坐标,然后计算?
作者: zh99998    时间: 2009-8-4 07:31
对,RM没有提供事件块与事件块的判定
因为计算量比较大,所以算法要考虑好不然会很卡
或者写成脚本,效率比事件高一些
作者: veal    时间: 2009-8-5 17:19
在Game_Character的collide_with_characters?的for循环那里可以加入对event种类的判断
  1.     for event in $game_map.events_xy(x, y)          # 匹配事件块的方位
  2.       unless event.through                          # 关闭"事件块可穿透"?
  3.         return true if self.is_a?(Game_Event)       # 自己就是个事件块
  4.         return true if event.priority_type == 1     # 目标是普通事件块
  5.       end
  6.     end
复制代码
判断的话可以用事件名字,注释之类的。

如果不想循环每个事件(虽然RM每帧都循环所有事件很多次),参考以下关键字:
nearest neighbor search
metric tree
locality sensitive hashing
等等。
不过RM的地图大小很有限,把每个事件按坐标hash一下大概就可以了吧




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