Difference between revisions of "Sprite:clone"
From GiderosMobile
(2 intermediate revisions by one other user not shown) | |||
Line 4: | Line 4: | ||
=== Description === | === Description === | ||
Returns a new copy of a sprite. | Returns a new copy of a sprite. | ||
− | < | + | <syntaxhighlight lang="lua"> |
(sprite) = sprite:clone() | (sprite) = sprite:clone() | ||
− | </ | + | </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 04: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)
- Sprite:addChild
- Sprite:addChildAt
- Sprite:clearBlendMode
- Sprite:clone
- Sprite:contains
- Sprite:get
- Sprite:getAlpha
- Sprite:getAnchorPoint
- Sprite:getAnchorPosition
- Sprite:getBounds
- Sprite:getChildAt
- Sprite:getChildIndex
- Sprite:getChildrenAtPoint
- Sprite:getClip
- Sprite:getColorTransform
- Sprite:getDrawCount
- Sprite:getHeight
- Sprite:getLayoutConstraints
- Sprite:getLayoutInfo
- Sprite:getLayoutParameters
- Sprite:getMatrix
- Sprite:getNumChildren
- Sprite:getParent
- Sprite:getPosition
- Sprite:getRotation
- Sprite:getRotationX
- Sprite:getRotationY
- Sprite:getScale
- Sprite:getScaleX
- Sprite:getScaleY
- Sprite:getScaleZ
- Sprite:getSize
- Sprite:getSkew
- Sprite:getSkewX
- Sprite:getSkewY
- Sprite:getWidth
- Sprite:getX
- Sprite:getY
- Sprite:getZ
- Sprite:globalToLocal
- Sprite:hitTestPoint
- Sprite:isVisible
- Sprite:localToGlobal
- Sprite:redrawEffects
- Sprite:removeChild
- Sprite:removeChildAt
- Sprite:removeFromParent
- Sprite:set
- Sprite:setAlpha
- Sprite:setAnchorPoint
- Sprite:setAnchorPosition
- Sprite:setBlendMode
- Sprite:setClip
- Sprite:setColorTransform
- Sprite:setEffectConstant
- Sprite:setEffectStack
- Sprite:setGhosts
- Sprite:setLayoutConstraints
- Sprite:setLayoutParameters
- Sprite:setMatrix
- Sprite:setPosition
- Sprite:setRotation
- Sprite:setRotationX
- Sprite:setRotationY
- Sprite:setScale
- Sprite:setScaleX
- Sprite:setScaleY
- Sprite:setScaleZ
- Sprite:setShader
- Sprite:setShaderConstant
- Sprite:setSkew
- Sprite:setSkewX
- Sprite:setSkewY
- Sprite:setStencilOperation
- Sprite:setStopEventPropagation
- Sprite:setVisible
- Sprite:setX
- Sprite:setY
- Sprite:setZ
- Sprite:spriteToLocal
- Sprite:swapChildren
- Sprite:swapChildrenAt
- Sprite.ADD
- Sprite.ALPHA
- Sprite.EFFECT MODE AUTOMATIC
- Sprite.EFFECT MODE CONTINUOUS
- Sprite.EFFECT MODE TRIGGERED
- Sprite.LAYOUT ANCHOR CENTER
- Sprite.LAYOUT ANCHOR EAST
- Sprite.LAYOUT ANCHOR NORTH
- Sprite.LAYOUT ANCHOR NORTHEAST
- Sprite.LAYOUT ANCHOR NORTHWEST
- Sprite.LAYOUT ANCHOR SOUTH
- Sprite.LAYOUT ANCHOR SOUTHEAST
- Sprite.LAYOUT ANCHOR SOUTHWEST
- Sprite.LAYOUT ANCHOR WEST
- Sprite.LAYOUT FILL BOTH
- Sprite.LAYOUT FILL HORIZONTAL
- Sprite.LAYOUT FILL NONE
- Sprite.LAYOUT FILL VERTICAL
- Sprite.MULTIPLY
- Sprite.NO ALPHA
- Sprite.SCREEN
- Sprite.new
- Event.ADDED_TO_STAGE
- Event.ENTER_FRAME
- Event.KEY_CHAR
- Event.KEY_DOWN
- Event.KEY_UP
- Event.LAYOUT_RESIZED
- Event.MOUSE_DOWN
- Event.MOUSE_ENTER
- Event.MOUSE_HOVER
- Event.MOUSE_LEAVE
- Event.MOUSE_MOVE
- Event.MOUSE_UP
- Event.MOUSE_WHEEL
- Event.REMOVED_FROM_STAGE
- Event.TOUCHES_BEGIN
- Event.TOUCHES_CANCEL
- Event.TOUCHES_END
- Event.TOUCHES_MOVE