Difference between revisions of "Sprite:clone"

From GiderosMobile
m (Text replacement - "<source" to "<syntaxhighlight")
 
(One intermediate revision by one other user not shown)
Line 6: Line 6:
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
 
(sprite) = sprite:clone()
 
(sprite) = sprite:clone()
</source>
+
</syntaxhighlight>
  
 
All settings are retained in the copy, and all children are recursively cloned. All lua fields of the original sprite are also copied to the new sprite. The new sprite is, however, not inserted in the original sprite's parent, and listeners are not kept.
 
All settings are retained in the copy, and all children are recursively cloned. All lua fields of the original sprite are also copied to the new sprite. The new sprite is, however, not inserted in the original sprite's parent, and listeners are not kept.
  
 
During sprite cloning, the lua method ''newClone'' is called on the Sprite, if it exists.
 
During sprite cloning, the lua method ''newClone'' is called on the Sprite, if it exists.
 +
 +
=== Example ===
 +
<syntaxhighlight lang="lua">
 +
local bitmap = Bitmap.new(Texture.new("gfx/test.png"))
 +
local bitmap2 = Bitmap.new(Texture.new("gfx/arrow_0001.png"))
 +
local bitmap3 = bitmap:clone()
 +
-- position
 +
bitmap:setPosition(32*1, 32*4)
 +
bitmap2:setPosition(32*6, 32*1)
 +
bitmap3:setPosition(32*1, 32*1)
 +
-- order
 +
stage:addChild(bitmap)
 +
stage:addChild(bitmap2)
 +
stage:addChild(bitmap3)
 +
</syntaxhighlight>
  
 
{{Sprite}}
 
{{Sprite}}

Latest revision as of 05:49, 5 November 2023

Available since: Gideros 2022.5
Class: Sprite

Description

Returns a new copy of a sprite.

(sprite) = sprite:clone()

All settings are retained in the copy, and all children are recursively cloned. All lua fields of the original sprite are also copied to the new sprite. The new sprite is, however, not inserted in the original sprite's parent, and listeners are not kept.

During sprite cloning, the lua method newClone is called on the Sprite, if it exists.

Example

local bitmap = Bitmap.new(Texture.new("gfx/test.png"))
local bitmap2 = Bitmap.new(Texture.new("gfx/arrow_0001.png"))
local bitmap3 = bitmap:clone()
-- position
bitmap:setPosition(32*1, 32*4)
bitmap2:setPosition(32*6, 32*1)
bitmap3:setPosition(32*1, 32*1)
-- order
stage:addChild(bitmap)
stage:addChild(bitmap2)
stage:addChild(bitmap3)