Difference between revisions of "SpriteBatch:set"

(SpriteBatch pseudo removal note)
(Added geometry variant for 0.9.0)
Line 9: Line 9:
 
=== Arguments ===
 
=== Arguments ===
 
{{param|number|id|The identifier of the sprite that will be changed.}}
 
{{param|number|id|The identifier 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 [[Geometry]] in the batch. This requires the identifier returned by [[SpriteBatch:add]].
 +
{{notice|Geometry with more than 4 vertices cannot be used with SpriteBatches.}}
 +
=== Synopsis ===
 +
<source lang="lua">
 +
SpriteBatch:set( id, geometry, x, y, r, sx, sy, ox, oy, kx, ky )
 +
</source>
 +
=== Arguments ===
 +
{{param|number|id|The identifier of the sprite that will be changed.}}
 +
{{param|Geometry|geometry|The Geometry used on the image of the batch.}}
 
{{param|number|x|The position to draw the object (x-axis).}}
 
{{param|number|x|The position to draw the object (x-axis).}}
 
{{param|number|y|The position to draw the object (y-axis).}}
 
{{param|number|y|The position to draw the object (y-axis).}}
Line 22: Line 45:
  
 
== Notes ==
 
== Notes ==
SpriteBatch does not support removing individual sprites. One can do a pseudo removal (instead of clearing and re-adding everything) by:
+
SpriteBatches do not support removing individual sprites. One can do a pseudo removal (instead of clearing and re-adding everything) by:
  
 
<source lang = 'lua'>
 
<source lang = 'lua'>
Line 28: Line 51:
 
</source>
 
</source>
  
This makes all the sprite's vertices equal (because the x and y scales are 0), which prevents OpenGL from processing the sprite when drawing the SpriteBatch.
+
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 ==
 
== See Also ==

Revision as of 18:30, 11 August 2013

Available since LÖVE 0.8.0
This method is not supported in earlier versions.

Changes a sprite in the batch. This requires the identifier returned by add and addq.

Function

Synopsis

SpriteBatch:set( id, x, y, r, sx, sy, ox, oy, kx, ky )

Arguments

number id
The identifier of the sprite that will be changed.
number x
The position to draw the object (x-axis).
number y
The position to draw the object (y-axis).
number r (0)
Orientation (radians).
number sx (1)
Scale factor (x-axis).
number sy (sx)
Scale factor (y-axis).
number ox (0)
Origin offset (x-axis).
number oy (0)
Origin offset (y-axis).
number kx (0)
Shear factor (x-axis).
number ky (0)
Shear factor (y-axis).

Returns

Nothing.

Function

Available since LÖVE 0.9.0
This variant has replaced SpriteBatch:setq..

Changes a sprite with a Geometry in the batch. This requires the identifier returned by SpriteBatch:add.

O.png Geometry with more than 4 vertices cannot be used with SpriteBatches.  


Synopsis

SpriteBatch:set( id, geometry, x, y, r, sx, sy, ox, oy, kx, ky )

Arguments

number id
The identifier of the sprite that will be changed.
Geometry geometry
The Geometry used on the image of the batch.
number x
The position to draw the object (x-axis).
number y
The position to draw the object (y-axis).
number r (0)
Orientation (radians).
number sx (1)
Scale factor (x-axis).
number sy (sx)
Scale factor (y-axis).
number ox (0)
Origin offset (x-axis).
number oy (0)
Origin offset (y-axis).
number kx (0)
Shear factor (x-axis).
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:

SpriteBatch:set(id, 0, 0, 0, 0, 0)

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


Other Languages