LoginLogin

SPOFS

Root / Documentation / [.]

Created:
Change the position of a sprite. # Syntax ```sbsyntax SPOFS id, x, y {, time} ``` |Input|Description|[#] |`id`|ID of sprite to move| |`x`|New x-coordinate| |`y`|New y-coordinate| |`time`|Optional interpolation time in frames, zero if not specified| Moves the sprite referenced by `id` to the specified `x`,`y` coordinates. If time is nonzero, the sprite moves smoothly from the current position to the new position `x`,`y` over `time` frames. # Examples ```sb 'Create sprite (right arrow) SPSET 0,0,0,0,0,0 'Move sprite to center of screen SPOFS 0,112,88 ``` ```sb 'Create sprite (right arrow) SPSET 0,0,0,0,0,0 'Move sprite to lower right corner over two seconds SPOFS 0,240,176,120 ``` # Notes All arguments are rounded down. The range of `x` and `y` positions is limited to a signed 16 bit number, with range [-32768,32767]. Values outside of this range will be limited to this range. ```sb 'Create sprite (down arrow) SPSET 0,1,0,0,0,0 '"Move" sprite to upper left corner SPOFS 0,65536,-65536 'Get and print stored coordinates SPREAD(0),X,Y 'Prints "0 0" PRINT X,Y ``` If a sprite is being moved over time and the movement is interrupted by another interpolated `SPOFS`, the start position is the currently interpolated position. ```sb 'Create sprite (up arrow) SPSET 0,3,0,0,0,0 'Move to lower right corner over two seconds SPOFS 0,240,176,120 'Interrupt after one second WAIT 60 'Move to upper right corner instead SPOFS 0,240,0,120 ``` # Errors |Action|Error|[#] |Less than three arguments are specified|Missing operand| |More than four arguments are specified|Syntax error| |`id` is less than zero or greater than 99|Out of range| |The sprite `id` does not exist|Illegal function call| |A value less than zero is passed for `time`|Out of range| |A string is passed in place of any argument|Type Mismatch| # See Also - sbs:page/docs-ptc-sprite[Sprite overview] - sbs:page/docs-ptc-sphome{`SPHOME`} - sbs:page/docs-ptc-spread{`SPREAD`}

No posts yet (will you be the first?)