1.0.4 • Published 2 years ago
radar4mob v1.0.4
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
.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)
Install
npm i radar4mob
How to use
Node.js
import { Area, Mob } from 'radar4mob'
Browser (umd)
<script src="https://cdn.jsdelivr.net/npm/radar4mob@latest/dist/umd/index.min.js"></script>
<script>
const { Area, Mob } = Radar4Mob
</script>
Browser (esm)
<script type="module">
import { Area, Mob } from 'https://cdn.jsdelivr.net/npm/radar4mob@latest/dist/esm/index.min.js'
</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.