UNPKG

spritemaker

Version:
108 lines (84 loc) 4.34 kB
# Sprite Maker This package helps you create pixel art image sprites. ## Quickstart Install: `npm install --save spritemaker` Require: `const spritemaker = require("spritemaker")` Use: `makeSprite({ sprite, name, interval, pixelSize, parentId }).start()` ## Usage ### Designing your sprite First, you must create a representation of your sprite as array of image frames. Each image frame is an array of rows, each cell is a hex color code. The example below is a 3x3 image that alternates between black and white. ```javascript // template of 2 image, 3 x 3 sprite const mySprite = [ // images [ // image [#FFFFF, #FFFFF, #FFFFF], // row [#FFFFF, #FFFFF, #FFFFF], // row [#FFFFF, #FFFFF, #FFFFF], // row ], [ // image [#000000, #000000, #000000], // row [#000000, #000000, #000000], // row [#000000, #000000, #000000], // row ], ] ``` Image frames can be any dimension but all image frames within a sprite must have the same dimensions. There is no limit on number of frames. ### Creating your sprite ```javascript makeSprite({ sprite, // required 3d array, the array representation of your sprite (see above) pixelSize, // optional number, the height and width of each pixel in px, defaults to 1 interval, // optional number, milliseconds between frames parentId, // optional string, id of desired parent element of sprite name, // optional string, class name of sprite }) // returns { sprite, // DOM node of sprite start, // function to start sprite stop, // function to stop sprite } ``` ### Example ![Winking Face Gif](./WinkingFace.gif) ```javascript const winkingFace = [ [ ["#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#050505", "#050505", "#FFF200", "#FFF200", "#050505", "#050505", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#050505", "#050505", "#FFF200", "#FFF200", "#050505", "#050505", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#050505", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#050505", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#050505", "#050505", "#050505", "#050505", "#050505", "#050505", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ], [ ["#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#050505", "#050505", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#050505", "#050505", "#FFF200", "#FFF200", "#050505", "#050505", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#050505", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#050505", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#050505", "#050505", "#050505", "#050505", "#050505", "#050505", "#FFF200", "#FFF200"], ["#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200", "#FFF200"], ], ] const winkingSprite = makeSprite({ sprite: winkingFace, name: "winking-face", interval: 500, pixelSize: 20, parentId: "container", // sprite gets attached to existing div with id="container" }) winkingSprite.start() // starts sprite animation winkingSprite.stop() // stops sprite animation ```