radar4mob
v1.1.1
Published
Detects and emits an event when the position of an mob with coordinates changes.
Downloads
130
Readme
radar4mob
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(onSceneUpdate, 60 / 1000)
Install
npm i radar4mob
How to use
Node.js
import { Area, Mob } from 'radar4mob'
Browser (esm)
<script type="module">
import { Area, Mob } from 'https://cdn.jsdelivr.net/npm/[email protected]/+esm'
</script>
API
Area
addMob(id: string
, thresholdRadius: number
): Mob
Create a new mobility object. You can use mob.id
property for getMob
or removeMob
method.
getMob(id: string
): Mob|null
Get a added mobility object from area instance. If object not exists, It will return null
.
removeMob(id: string
): boolean
Remove a added mobility. If object exists, returns true
. otherwise, returns false
.
update(): void
When this function is called, an 'in', 'out' event emits according to the coordinates of the mob.
destroy(): void
Destroy all mobs. It will call garbage collector.
Mob
(property) thresholdRadius: number
You can set threshold of mob.
const mob = area.addMob('test-mob')
mob.thresholdRadius = 10
(property) position: Position
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(): void
Destroy a mob instance. A area instance will drop mob instance too.