LoginLogin
Might make SBS readonly: thread

SPVAR

Root / Documentation / [.]

Created:
Manage variables associated with sprites. Each sprite has its own pool of *sprite variables*, allowing you to store /values/ associated with /keys/ "within" a sprite (an https://en.wikipedia.org/wiki/Associative_array[associative array].) The key can be either an integer or a string, and the value stored with it can be anything (even an array.) All unique keys refer to unique variables in the sprite, e.g. `0` and `"0"` are (necessarily) different. * Set/Get Set or get the value of a sprite variable. ```sbfunction SPVAR spriteID%, key, value SPVAR spriteID%, key OUT value ``` |* Input | Description | | `spriteID%` | ID of the target sprite. | | `key` | The key of the target sprite variable. Can be an integer or a string. | | `value` | The value associated with `key`. | When reading an unset sprite variable, 0 is returned. * Delete Delete a sprite variable, or all sprite variables. ```sbsyntax SPVAR spriteID% {, key } ``` |* Input | Description | | `spriteID%` | ID of the target sprite. | | `key` | The key of the sprite variable to delete.\ If omitted, all of the sprite's variables are deleted. | * Examples ```sb4 'set the sprite variable "FOO" to 1 in sprite 0 SPVAR 0,"FOO",1 ``` ```sb4 'read "FOO" from sprite 0 PRINT SPVAR(0,"FOO") ``` ```sb4 'delete "FOO" SPVAR 0,"FOO" ``` ```sb4 'delete them all SPVAR 0 ``` * Notes ** Keys 0-7 and `SPANIM` In SmileBASIC 3, sprites only had 8 integer sprite variables, with the keys 0-7, set to 0 by default. These variables might be allocated or handled specially, but since all unset sprite variables are 0 by default they are functionally the same as any other. Sprite variable 7, however, is the target of the `"V"` `SPANIM` animation target. This target sets or changes variable 7 by some integer value. If variable 7 is not an integer value, it will be set to 0 when the animation starts.

No posts yet (will you be the first?)