arclib-sprite

a flexible base sprite for use in browser games.

Usage no npm install needed!

<script type="module">
  import arclibSprite from 'https://cdn.skypack.dev/arclib-sprite';
</script>

README

Sprite

a flexible base sprite for use in browser games.

Features

  • object-pool for free
  • attach arbitrary render methods to each sprite
  • sprite methods are chain-able

Usage

create one sprite

    // create one sprite
    const sprite = createSprite(opts, renderMethod);

create a pool of n sprites

    // create a pool of 10 sprites
    const spritePool = createSprites(opts, renderMethod, 10);

find an available sprite in a pool

    // find available sprites
    const availableSprite = findAvailable(spritePool);

take at most n sprites

    // take at most 5 available sprites
    const availableSprites = takeAvailable(spritePool, 5);

update

update sprite state

    sprite.update((state) => {
        // increment y position by 1
        return {
            position: [state.position[0], state.position[1] + 1]
        };
    })

then

update sprite state

    sprite
    .update(state => {
        // increment x position by 1
        return {
            position: [state.position[0] + 1, state.position[1]]
        };
    })
    .then(sprite => {
        // do something with sprite
    })

render

calls the sprite's render method

    sprite.render();

move

convenience method for moving (updating position)

    // move to (x + 1, y - 1)
    sprite2D.move(1, -1);

    // move to (x + 1, y - 1, z + 1)
    sprite3D.move(1, -1, 1);