pomelo-schedule是Pomelo中一个AOI使用Demo。
aoi(pomelo-aoi)模块包括一个AOI接口集合,及一种塔式AOI算法的实现。
安装
npm install pomelo-aoi
生成AOI实例
AOI服务可以很多场景中使用,每个使用aoi的场景都要创建AOI实例。
可以使用AOI工厂函数创建实例,该函数接受一个object参数,并返回一个AOI实例。示例如下:
var aoiManager = require('pomelo-aoi');
var config = {
map : {
width : 3200,
height : 2400
},
tower : {
width : 300,
height : 300
}
}
var aoi = aoiManager.getService(config);
使用AOI服务
AOI实例的基础接口就是AOI动作:
//Add object aoi.addObject(obj, pos); //Remove object aoi.removeObject(obj, pos); //Update object aoi.updateObject(obj, oldPos, newPos); //Add watcher aoi.addWatcher(watcher, pos, range); //Remove watcher aoi.removeWatcher(watcher, pos, range0; //updateWatcher(watcher, oldPos, newPos, oldRange, newRange);
- 更多AOI接口请参考:aoiService.js
处理AOI事件
AOI服务会在对象改变或对象监视器改变后生成对应的事件,你可以像下面这样处理这些事件:
aoi.on('add', function(params){
//Handle add event
});
对于一个AOI对象来说,其事件有:'add'、'remove'、'update';而对一个AOI监视器(watcher)来说,其事件有:updateWatcher。你也可以忽略所有这些事件,而不会对AOI函数产生任何影响。
