Detects and emits an event when the position of an mob with coordinates changes.
import { Area, Mob } from 'radar4mob'
const area = new Area
class SomeGameObject {
mob: Mob
constructor() {
...
this.mob = area.addMob('objects-unique-id', threshold)
}
}
const obj = new SomeGameObject()
obj.mob.position.set(x, y, z, w)
obj.mob.emitter
.on('in', (mob) => {
console.log(`The object ${mob.id} came into your threshold radius.`)
})
.on('out', (mob) => {
console.log(`The object ${mob.id} is out of your threshold radius.`)
})
const onSceneUpdate = () => {
// When this function is called, an 'in', 'out' event emits according to the coordinates of the mob.
area.update()
}
const onSceneDestroy = () => {
// Destroys all mob when scene destroyed.
area.destroy()
}
// game update
setInterval(onFrameUpdate, 60 / 1000)
npm i radar4mob
import { Area, Mob } from 'radar4mob'
<script type="module">
import { Area, Mob } from 'https://cdn.jsdelivr.net/npm/radar4mob@1.x.x/+esm'
</script>
Create a new mobility object. You can use mob.id
property for getMob
or removeMob
method.
Get a added mobility object from area instance. If object not exists, It will return null
.
Remove a added mobility. If object exists, returns true
. otherwise, returns false
.
When this function is called, an 'in', 'out' event emits according to the coordinates of the mob.
Destroy all mobs. It will call garbage collector.
You can set threshold of mob.
const mob = area.addMob('test-mob')
mob.thresholdRadius = 10
You can set position of mob.
const mob = area.addMob('test-mob')
mob.position.set(x, y, z, w)
// or
mob.position.x = 10
Destroy a mob instance. A area instance will drop mob instance too.