{{newin|[[0.8.0]]|080|type=method}}
Changes a sprite in the batch. This requires the sprite index returned by [[SpriteBatch:add]] or [[SpriteBatch:addLayer]].

== Function ==
=== Synopsis ===
<source lang="lua">
SpriteBatch:set( spriteindex, x, y, r, sx, sy, ox, oy, kx, ky )
</source>
=== Arguments ===
{{param|number|spriteindex|The index of the sprite that will be changed.}}
{{param|number|x|The position to draw the object (x-axis).}}
{{param|number|y|The position to draw the object (y-axis).}}
{{param|number|r (0)|Orientation (radians).}}
{{param|number|sx (1)|Scale factor (x-axis).}}
{{param|number|sy (sx)|Scale factor (y-axis).}}
{{param|number|ox (0)|Origin offset (x-axis).}}
{{param|number|oy (0)|Origin offset (y-axis).}}
{{param|number|kx (0)|Shear factor (x-axis).}}
{{param|number|ky (0)|Shear factor (y-axis).}}
=== Returns ===
Nothing.

== Function ==
{{newin|[[0.9.0]]|090|type=variant|text=This variant has replaced [[SpriteBatch:setq]]}}
Changes a sprite with a [[Quad]] in the batch. This requires the index returned by [[SpriteBatch:add]] or [[SpriteBatch:addLayer]].
=== Synopsis ===
<source lang="lua">
SpriteBatch:set( spriteindex, quad, x, y, r, sx, sy, ox, oy, kx, ky )
</source>
=== Arguments ===
{{param|number|spriteindex|The index of the sprite that will be changed.}}
{{param|Quad|quad|The Quad used on the image of the batch.}}
{{param|number|x|The position to draw the object (x-axis).}}
{{param|number|y|The position to draw the object (y-axis).}}
{{param|number|r (0)|Orientation (radians).}}
{{param|number|sx (1)|Scale factor (x-axis).}}
{{param|number|sy (sx)|Scale factor (y-axis).}}
{{param|number|ox (0)|Origin offset (x-axis).}}
{{param|number|oy (0)|Origin offset (y-axis).}}
{{param|number|kx (0)|Shear factor (x-axis).}}
{{param|number|ky (0)|Shear factor (y-axis).}}
=== Returns ===
Nothing.

== Notes ==
SpriteBatches do not support removing individual sprites. One can do a pseudo removal (instead of clearing and re-adding everything) by:

<source lang="lua">
SpriteBatch:set(id, 0, 0, 0, 0, 0)
</source>

This makes all the sprite's vertices equal (because the x and y scales are 0), which prevents the GPU from fully processing the sprite when drawing the SpriteBatch.

== See Also ==
* [[parent::SpriteBatch]]
* [[SpriteBatch:add]]
* [[SpriteBatch:addLayer]]
* [[SpriteBatch:setLayer]]
[[Category:Functions]]
{{#set:Description=Changes a sprite in the batch.}}
{{#set:Since=080}}
== Other Languages ==
{{i18n|SpriteBatch:set}}