SPANIM
Root / Documentation / [.]
Created:
Animate a sprite.
# Syntax
```sbsyntax
SPANIM id, chr_count, frame_time {, loop_count}
```
|Input|Description|[#]
|`id`|Sprite ID|
|`chr_count`|Number of different sprites to change to|
|`frame_time`|Number of frames to linger on a given sprite|
|`loop_count`|Number of times to repeat animation. Optional|
Animates sprite `id` by cycling through `chr_count` sprites, waiting `frame_time` for each sprite before changing. If specified, repeats the cycle `loop_count` times, or repeats forever if `loop_count` is zero or omitted.
# Examples
```
' Create a boy sprite facing the screen
SPSET 0,68,2,0,0,0
' Aniamte the sprite so it appears to walk
' The sprite takes one second per cycle (4 sprites * 15 frames/sprite)
SPANIM 0,4,15
```
# Notes
All arguments rounded down.
Note that the `SPCHR`/`SPSET` character selected is independent of the animation. If you use `SPREAD` to get the current character, it will always return whatever character the sprite was last set to or created with. As such you can not determine the current animation frame by `SPREAD`.
If you use `SPCHR` on an animated sprite, the animation settings are kept, but the shift in base character leads to the animation changing. Example:
```
' Create a boy sprite facing the screen
SPSET 0,68,2,0,0,0
' Aniamte the sprite so it appears to walk
' The sprite takes one second per cycle (4 sprites * 15 frames/sprite)
SPANIM 0,4,15
' Wait for one cycle
WAIT 60
' Change the boy to face right
SPCHR 0,64
' Now the boy appears walking to the right
```
# Errors
|Action|Error|[#]
|`id` does not correspond to an active sprite|Illegal function call|
|`id` is less than zero or greater than 99|Out of range|
|`chr_count` is less than one|Out of range|
|`frame_time` is less than zero|Out of range|
|`loop_count` is less than zero|Out of range|
|A string argument is passed|Type Mismatch|
|Less than three arguments are passed|Missing operand|
|More than four arguments are passed|Syntax error|
# See Also
- sbs:docs/ptc-sprite[Sprite overview]
- sbs:docs/ptc-spgetv{`SPOFS`}
- sbs:docs/ptc-spgetv{`SPCHR`}
- sbs:docs/ptc-spchk{`SPCHK`}
No posts yet (will you be the first?)