Sprites primitive properties
This primitive goals to draw a sprite
Properties
spriteWidthspriteHeighturlnumberOfFramesnbPerLineseparatorSizeselectedColumnselectedLine
Properties specifications
Do not use width and height for SpritesPrimitive. You should use spriteWidth and spriteHeight instead to define the size of on image.
spriteWidth
| Type | Default value | Supported value |
|---|---|---|
| number | 0 | Not applicable |
Describes the width of one image in the sprite.
spriteHeight
| Type | Default value | Supported value |
|---|---|---|
| number | 0 | Not applicable |
Describes the height of one image in the sprite.
url
| Type | Default value | Supported value |
|---|---|---|
| string | null | Not applicable |
Describes path url to the sprites image source.
Formats supported across all renderers are PNG and JPEG. Other formats could require specific work.
numberOfFrames
| Type | Default value | Supported value |
|---|---|---|
| number | 0 | Not applicable |
Describes the number of single image that compose the sprite.
nbPerLine
| Type | Default value | Supported value |
|---|---|---|
| number | 0 | Not applicable |
Describes the number of single image per line.
separatorSize
| Type | Default value | Supported value |
|---|---|---|
| number | 0 | Not applicable |
Describes the space in pixel between two single image that compose the sprite.
selectedColumn
| Type | Default value | Supported value |
|---|---|---|
| number | 1 | Not applicable |
Describes the selected column number (starting from 1 for first column).
selectedLine
| Type | Default value | Supported value |
|---|---|---|
| number | 1 | Not applicable |
Describes the selected line number (starting from 1 for first line).
Tips
Create an animated sprite
If you want to animate your sprite, we recommend you to create start an stop methods that you will be able to call from a `Screen`` to launch the animated effect.
export default $SpritesPrimitive.declare("AnimatedSpritesPrimitive", {
statics: {
SPRITE_ANIMATION_TIMER_ID: "spriteAnimation",
SPRITE_ANIMATION_TIMER_DURATION: 70
},
properties: {
timerManager: {class: $TimerManager}
},
methods: {
startAnimatedSprite: function () {
const nbOfLines = Math.ceil(this.numberOfFrames / this.nbPerLine);
this.spriteIntervalId = this.timerManager.setInterval(() => {
if (this.selectedColumn === this.nbPerLine) {
this.selectedLine = (this.selectedLine + 1) % nbOfLines;
this.selectedColumn = 1;
} else {
this.selectedColumn++;
}
}, this.statics.SPRITE_ANIMATION_TIMER_DURATION, this.statics.SPRITE_ANIMATION_TIMER_ID);
},
stopAnimatedSprite: function () {
this.timerManager.clearInterval(this.statics.SPRITE_ANIMATION_TIMER_ID);
}
}
});