pomelo-aoi 模块



pomelo-schedule是Pomelo中一个AOI使用Demo。

aoipomelo-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事件

AOI服务会在对象改变或对象监视器改变后生成对应的事件,你可以像下面这样处理这些事件:

aoi.on('add', function(params){
	//Handle add event
});

对于一个AOI对象来说,其事件有:'add''remove''update';而对一个AOI监视器(watcher)来说,其事件有:updateWatcher。你也可以忽略所有这些事件,而不会对AOI函数产生任何影响。