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种类的判断
for event in $game_map.events_xy(x, y) # 匹配事件块的方位
unless event.through # 关闭"事件块可穿透"?
return true if self.is_a?(Game_Event) # 自己就是个事件块
return true if event.priority_type == 1 # 目标是普通事件块
end
end
复制代码
判断的话可以用事件名字,注释之类的。
如果不想循环每个事件(虽然RM每帧都循环所有事件很多次),参考以下关键字:
nearest neighbor search
metric tree
locality sensitive hashing
等等。
不过RM的地图大小很有限,把每个事件按坐标hash一下大概就可以了吧
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1