Axmol Engine 2.4.0-258ceca
|
Sprite is a 2d image ( http://en.wikipedia.org/wiki/Sprite_(computer_graphics) ). More...
#include <Sprite.h>
Inherits Node.
Inherited by AnchoredSprite, BillBoard, LayerColor, and Scale9Sprite.
Public Member Functions | |
virtual bool | isFrameDisplayed (SpriteFrame *frame) const |
Returns whether or not a SpriteFrame is being displayed. | |
virtual SpriteFrame * | getSpriteFrame () const |
Returns the current displayed frame. | |
const V3F_C4B_T2F_Quad & | getQuad () const |
Returns the quad (tex coords, vertex coords and color) information. | |
bool | isTextureRectRotated () const |
Returns whether or not the texture rectangle is rotated. | |
unsigned int | getAtlasIndex () const |
Returns the index used on the TextureAtlas. | |
void | setAtlasIndex (unsigned int atlasIndex) |
Sets the index used on the TextureAtlas. | |
const Rect & | getTextureRect () const |
Returns the rect of the Sprite in points. | |
TextureAtlas * | getTextureAtlas () const |
Gets the weak reference of the TextureAtlas when the sprite is rendered using via SpriteBatchNode. | |
bool | setProgramState (backend::ProgramState *programState, bool ownPS=false) override |
Set or Attach new ProgramState. | |
void | setTextureAtlas (TextureAtlas *textureAtlas) |
Sets the weak reference of the TextureAtlas when the sprite is rendered using via SpriteBatchNode. | |
const Vec2 & | getOffsetPosition () const |
Gets the offset position of the sprite. | |
bool | isFlippedX () const |
Returns the flag which indicates whether the sprite is flipped horizontally or not. | |
void | setFlippedX (bool flippedX) |
Sets whether the sprite should be flipped horizontally or not. | |
bool | isFlippedY () const |
Return the flag which indicates whether the sprite is flipped vertically or not. | |
void | setFlippedY (bool flippedY) |
Sets whether the sprite should be flipped vertically or not. | |
const PolygonInfo & | getPolygonInfo () const |
returns a reference of the polygon information associated with this sprite | |
void | setPolygonInfo (const PolygonInfo &info) |
set the sprite to use this new PolygonInfo | |
void | setStretchEnabled (bool enabled) |
whether or not contentSize stretches the sprite's texture | |
bool | isStretchEnabled () const |
returns whether or not contentSize stretches the sprite's texture | |
Sprite () | |
@js ctor | |
virtual bool | initWithTexture (Texture2D *texture) |
Initializes a sprite with a texture. | |
virtual bool | initWithPolygon (const PolygonInfo &info) |
Initializes a sprite with a PolygonInfo. | |
virtual bool | initWithTexture (Texture2D *texture, const Rect &rect) |
Initializes a sprite with a texture and a rect. | |
virtual bool | initWithTexture (Texture2D *texture, const Rect &rect, bool rotated) |
Initializes a sprite with a texture and a rect in points, optionally rotated. | |
virtual bool | initWithSpriteFrame (SpriteFrame *spriteFrame) |
Initializes a sprite with an SpriteFrame. | |
virtual bool | initWithSpriteFrameName (std::string_view spriteFrameName) |
Initializes a sprite with an sprite frame name. | |
virtual bool | initWithFile (std::string_view filename) |
Initializes a sprite with an image filename. | |
virtual bool | initWithFile (std::string_view filename, const Rect &rect) |
Initializes a sprite with an image filename, and a rect. | |
virtual bool | initWithImageData (const ax::Data &imageData, std::string_view key) |
Initializes a sprite with an image data, and a key for the cache. | |
void | setAutoSize (bool enabled) |
Indicate if the sprite content size can change if new textures are applied to the sprite. | |
BatchNode methods | |
virtual void | updateTransform () override |
Updates the quad according the rotation, position, scale values. | |
virtual SpriteBatchNode * | getBatchNode () const |
Returns the batch node object if this sprite is rendered by SpriteBatchNode. | |
virtual void | setBatchNode (SpriteBatchNode *spriteBatchNode) |
Sets the batch node to sprite. | |
Texture / Frame methods | |
virtual void | setTexture (std::string_view filename) |
Sets a new texture (from a filename) to the sprite. | |
virtual void | setTexture (Texture2D *texture) override |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.The Texture's rect is not changed. | |
virtual Texture2D * | getTexture () const override |
Returns the Texture2D object used by the sprite. | |
virtual void | setTextureRect (const Rect &rect) |
Updates the texture rect of the Sprite in points. | |
virtual void | setTextureRect (const Rect &rect, bool rotated, const Vec2 &untrimmedSize) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.It will update the texture coordinates and the vertex rectangle. | |
virtual void | setVertexRect (const Rect &rect) |
Sets the vertex rect. | |
virtual void | setCenterRectNormalized (const Rect &rect) |
setCenterRectNormalized | |
virtual Rect | getCenterRectNormalized () const |
getCenterRectNormalized | |
virtual Rect | getCenterRect () const |
Returns the Cap Insets rect. | |
virtual void | setSpriteFrame (std::string_view spriteFrameName) |
Animation methods | |
virtual void | setDisplayFrameWithAnimationName (std::string_view animationName, unsigned int frameIndex) |
Changes the display frame with animation name and index. | |
Sprite Properties' setter/getters. | |
virtual bool | isDirty () const |
Whether or not the Sprite needs to be updated in the Atlas. | |
virtual void | setDirty (bool dirty) |
Makes the Sprite to be updated in the Atlas. | |
virtual std::string | getDescription () const override |
@js NA | |
Functions inherited from Node. | |
virtual void | setScaleX (float scaleX) override |
Sets the scale (x) of the node. | |
virtual void | setScaleY (float scaleY) override |
Sets the scale (y) of the node. | |
virtual void | setScale (float scaleX, float scaleY) override |
Sets the scale (x,y) of the node. | |
virtual void | setPosition (const Vec2 &pos) override |
@js NA @lua NA | |
virtual void | setPosition (float x, float y) override |
Sets the position (x,y) of the node in its parent's coordinate system. | |
virtual void | setRotation (float rotation) override |
Sets the rotation (angle) of the node in degrees. | |
virtual void | setRotationSkewX (float rotationX) override |
Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew. | |
virtual void | setRotationSkewY (float rotationY) override |
Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. | |
virtual void | setSkewX (float sx) override |
Changes the X skew angle of the node in degrees. | |
virtual void | setSkewY (float sy) override |
Changes the Y skew angle of the node in degrees. | |
virtual void | removeChild (Node *child, bool cleanup=true) override |
Removes a child from the container. | |
virtual void | removeAllChildrenWithCleanup (bool cleanup) override |
Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter. | |
virtual void | reorderChild (Node *child, int zOrder) override |
Reorders a child according to a new z value. | |
virtual void | addChild (Node *child, int zOrder, int tag) override |
Adds a child to the container with z order and tag. | |
virtual void | addChild (Node *child, int zOrder, std::string_view name) override |
Adds a child to the container with z order and tag. | |
virtual void | sortAllChildren () override |
Sorts the children array once before drawing, instead of every time when a child is added or reordered. | |
virtual void | setScale (float scale) override |
Sets the scale (x,y,z) of the node. | |
virtual void | setPositionZ (float positionZ) override |
Sets the 'z' coordinate in the position. | |
virtual void | setAnchorPoint (const Vec2 &anchor) override |
Sets the anchor point in percent. | |
virtual void | setContentSize (const Vec2 &size) override |
Sets the untransformed size of the node. | |
virtual void | setIgnoreAnchorPointForPosition (bool value) override |
Sets whether the anchor point will be (0,0) when you position this node. | |
virtual void | setVisible (bool bVisible) override |
Sets whether the node is visible. | |
virtual void | draw (Renderer *renderer, const Mat4 &transform, uint32_t flags) override |
Override this method to draw your own node. | |
virtual void | setOpacityModifyRGB (bool modify) override |
If you want the opacity affect the color property, then set to true. | |
virtual bool | isOpacityModifyRGB () const override |
If node opacity will modify the RGB color value, then you should override this method and return true. | |
virtual void | addChild (Node *child) |
Adds a child to the container with z-order as 0. | |
virtual void | addChild (Node *child, int localZOrder) |
Adds a child to the container with a local z-order. | |
Functions inherited from TextureProtocol. | |
void | setBlendFunc (const BlendFunc &blendFunc) override |
const BlendFunc & | getBlendFunc () const override |
@js NA @lua NA | |
![]() | |
virtual bool | isRunning () const |
Returns whether or not the node is "running". | |
void | scheduleUpdateWithPriorityLua (int handler, int priority) |
Schedules for lua script. | |
virtual void | cleanup () |
Stops all running actions and schedulers. | |
virtual void | visit (Renderer *renderer, const Mat4 &parentTransform, uint32_t parentFlags) |
Visits this node's children and draw them recursively. | |
virtual Scene * | getScene () const |
Returns the Scene that contains the Node. | |
virtual Rect | getBoundingBox () const |
Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system. | |
virtual void | setEventDispatcher (EventDispatcher *dispatcher) |
Set event dispatcher for scene. | |
virtual EventDispatcher * | getEventDispatcher () const |
Get the event dispatcher of scene. | |
virtual uint8_t | getOpacity () const |
Return the node's opacity. | |
virtual uint8_t | getDisplayedOpacity () const |
Return the node's display opacity. | |
virtual void | setOpacity (uint8_t opacity) |
Change node opacity. | |
virtual void | updateDisplayedOpacity (uint8_t parentOpacity) |
Update the displayed opacity of node with it's parent opacity;. | |
virtual bool | isCascadeOpacityEnabled () const |
Whether cascadeOpacity is enabled or not. | |
virtual void | setCascadeOpacityEnabled (bool cascadeOpacityEnabled) |
Change node's cascadeOpacity property. | |
virtual const Color3B & | getColor () const |
Query node's color value. | |
virtual const Color3B & | getDisplayedColor () const |
Query node's displayed color. | |
virtual void | setColor (const Color3B &color) |
Change the color of node. | |
virtual void | updateDisplayedColor (const Color3B &parentColor) |
Update node's displayed color with its parent color. | |
virtual bool | isCascadeColorEnabled () const |
Query whether cascadeColor is enabled or not. | |
virtual void | setCascadeColorEnabled (bool cascadeColorEnabled) |
If you want node's color affect the children node's color, then set it to true. | |
void | setOnEnterCallback (const std::function< void()> &callback) |
Set the callback of event onEnter. | |
const std::function< void()> & | getOnEnterCallback () const |
Get the callback of event onEnter. | |
void | setOnExitCallback (const std::function< void()> &callback) |
Set the callback of event onExit. | |
const std::function< void()> & | getOnExitCallback () const |
Get the callback of event onExit. | |
void | setOnEnterTransitionDidFinishCallback (const std::function< void()> &callback) |
Set the callback of event EnterTransitionDidFinish. | |
const std::function< void()> & | getOnEnterTransitionDidFinishCallback () const |
Get the callback of event EnterTransitionDidFinish. | |
void | setOnExitTransitionDidStartCallback (const std::function< void()> &callback) |
Set the callback of event ExitTransitionDidStart. | |
const std::function< void()> & | getOnExitTransitionDidStartCallback () const |
Get the callback of event ExitTransitionDidStart. | |
unsigned short | getCameraMask () const |
get & set camera mask, the node is visible by the camera whose camera flag & node's camera mask is true | |
virtual void | setCameraMask (unsigned short mask, bool applyChildren=true) |
Modify the camera mask for current node. | |
void | applyMaskOnEnter (bool applyChildren) |
Should addChild() make the child follow it's parent's mask? | |
backend::ProgramState * | setProgramStateByProgramId (uint64_t progId) |
Sets ProgramState by programId. | |
virtual void | setLocalZOrder (int localZOrder) |
LocalZOrder is the 'key' used to sort the node relative to its siblings. | |
void | updateOrderOfArrival () |
! | |
virtual int | getLocalZOrder () const |
Gets the local Z order of this node. | |
virtual void | setGlobalZOrder (float globalZOrder) |
Defines the order in which the nodes are renderer. | |
virtual float | getGlobalZOrder () const |
Returns the Node's Global Z Order. | |
virtual float | getScaleX () const |
Returns the scale factor on X axis of this node. | |
virtual float | getScaleY () const |
Returns the scale factor on Y axis of this node. | |
virtual void | setScaleZ (float scaleZ) |
Changes the scale factor on Z axis of this node. | |
virtual float | getScaleZ () const |
Returns the scale factor on Z axis of this node. | |
virtual float | getScale () const |
Gets the scale factor of the node, when X and Y have the same scale factor. | |
virtual void | setPositionNormalized (const Vec2 &position) |
Sets the position (x,y) using values between 0 and 1. | |
virtual const Vec2 & | getPosition () const |
Gets the position (x,y) of the node in its parent's coordinate system. | |
virtual const Vec2 & | getPositionNormalized () const |
Returns the normalized position. | |
virtual void | getPosition (float *x, float *y) const |
Gets position in a more efficient way, returns two number instead of a Vec2 object. | |
virtual void | setPositionX (float x) |
Gets/Sets x or y coordinate individually for position. | |
virtual float | getPositionX () const |
Gets the x coordinate of the node in its parent's coordinate system. | |
virtual void | setPositionY (float y) |
Sets the y coordinate of the node in its parent's coordinate system. | |
virtual float | getPositionY () const |
Gets the y coordinate of the node in its parent's coordinate system. | |
virtual void | setPosition3D (const Vec3 &position) |
Sets the position (X, Y, and Z) in its parent's coordinate system. | |
virtual Vec3 | getPosition3D () const |
Returns the position (X,Y,Z) in its parent's coordinate system. | |
virtual float | getPositionZ () const |
Gets position Z coordinate of this node. | |
virtual float | getSkewX () const |
Returns the X skew angle of the node in degrees. | |
virtual float | getSkewY () const |
Returns the Y skew angle of the node in degrees. | |
virtual const Vec2 & | getAnchorPoint () const |
Returns the anchor point in percent. | |
virtual const Vec2 & | getAnchorPointInPoints () const |
Returns the anchorPoint in absolute pixels. | |
virtual const Vec2 & | getContentSize () const |
Returns the untransformed size of the node. | |
virtual bool | hitTest (const Vec2 &worldPoint) const |
The basic node hit test, since axmol-1.0. | |
virtual bool | isVisible () const |
Determines if the node is visible. | |
virtual float | getRotation () const |
Returns the rotation of the node in degrees. | |
virtual void | setRotation3D (const Vec3 &rotation) |
Sets the rotation (X,Y,Z) in degrees. | |
virtual Vec3 | getRotation3D () const |
Returns the rotation (X,Y,Z) in degrees. | |
virtual void | setRotationQuat (const Quaternion &quat) |
Set rotation by quaternion. | |
virtual Quaternion | getRotationQuat () const |
Return the rotation by quaternion, Note that when _rotationZ_X == _rotationZ_Y, the returned quaternion equals to RotationZ_X * RotationY * RotationX, it equals to RotationY * RotationX otherwise. | |
virtual float | getRotationSkewX () const |
Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew. | |
virtual float | getRotationSkewY () const |
Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. | |
virtual bool | isIgnoreAnchorPointForPosition () const |
Gets whether the anchor point will be (0,0) when you position this node. | |
virtual int | getTag () const |
Returns a tag that is used to identify the node easily. | |
virtual void | setTag (int tag) |
Changes the tag that is used to identify the node easily. | |
virtual std::string_view | getName () const |
Returns a string that is used to identify the node. | |
virtual void | setName (std::string_view name) |
Changes the name that is used to identify the node easily. | |
virtual void * | getUserData () |
Returns a custom user data pointer. | |
virtual const void * | getUserData () const |
@lua NA | |
virtual void | setUserData (void *userData) |
Sets a custom user data pointer. | |
virtual Object * | getUserObject () |
Returns a user assigned Object. | |
virtual const Object * | getUserObject () const |
@lua NA | |
virtual void | setUserObject (Object *userObject) |
Returns a user assigned Object. | |
virtual void | onEnter () |
Event callback that is invoked every time when Node enters the 'stage'. | |
virtual void | onEnterTransitionDidFinish () |
Event callback that is invoked when the Node enters in the 'stage'. | |
virtual void | onExit () |
Event callback that is invoked every time the Node leaves the 'stage'. | |
virtual void | onExitTransitionDidStart () |
Event callback that is called every time the Node leaves the 'stage'. | |
virtual void | setActionManager (ActionManager *actionManager) |
Sets the ActionManager object that is used by all actions. | |
virtual ActionManager * | getActionManager () |
Gets the ActionManager object that is used by all actions. | |
virtual Action * | runAction (Action *action) |
Executes an action, and returns the action that is executed. | |
void | stopAllActions () |
Stops and removes all actions from the running action list . | |
void | stopAction (Action *action) |
Stops and removes an action from the running action list. | |
void | stopActionByTag (int tag) |
Removes an action from the running action list by its tag. | |
void | stopAllActionsByTag (int tag) |
Removes all actions from the running action list by its tag. | |
void | stopActionsByFlags (unsigned int flags) |
Removes all actions from the running action list by its flags. | |
Action * | getActionByTag (int tag) |
Gets an action from the running action list by its tag. | |
ssize_t | getNumberOfRunningActions () const |
Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays). | |
ssize_t | getNumberOfRunningActionsByTag (int tag) const |
Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays) with a specific tag. | |
virtual void | setScheduler (Scheduler *scheduler) |
Sets a Scheduler object that is used to schedule all "updates" and timers. | |
virtual Scheduler * | getScheduler () |
Gets a Scheduler object. | |
bool | isScheduled (SEL_SCHEDULE selector) const |
Checks whether a selector is scheduled. | |
bool | isScheduled (std::string_view key) const |
Checks whether a lambda function is scheduled. | |
void | scheduleUpdate () |
Schedules the "update" method. | |
void | scheduleUpdateWithPriority (int priority) |
Schedules the "update" method with a custom priority. | |
void | schedule (SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay) |
Schedules a custom selector. | |
void | schedule (SEL_SCHEDULE selector, float interval) |
Schedules a custom selector with an interval time in seconds. | |
void | scheduleOnce (SEL_SCHEDULE selector, float delay) |
Schedules a selector that runs only once, with a delay of 0 or larger. | |
void | scheduleOnce (const std::function< void(float)> &callback, float delay, std::string_view key) |
Schedules a lambda function that runs only once, with a delay of 0 or larger. | |
void | schedule (SEL_SCHEDULE selector) |
Schedules a custom selector, the scheduled selector will be ticked every frame. | |
void | schedule (const std::function< void(float)> &callback, std::string_view key) |
Schedules a lambda function. | |
void | schedule (const std::function< void(float)> &callback, float interval, std::string_view key) |
Schedules a lambda function. | |
void | schedule (const std::function< void(float)> &callback, float interval, unsigned int repeat, float delay, std::string_view key) |
Schedules a lambda function. | |
void | unschedule (SEL_SCHEDULE selector) |
Unschedules a custom selector. | |
void | unschedule (std::string_view key) |
Unschedules a lambda function. | |
void | unscheduleAllCallbacks () |
Unschedule all scheduled selectors and lambda functions: custom selectors, and the 'update' selector and lambda functions. | |
virtual void | resume () |
Resumes all scheduled selectors, actions and event listeners. | |
virtual void | pause () |
Pauses all scheduled selectors, actions and event listeners. | |
virtual void | update (float delta) |
Update method will be called automatically every frame if "scheduleUpdate" is called, and the node is "live". | |
virtual const Mat4 & | getNodeToParentTransform () const |
Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. | |
virtual Mat4 | getNodeToParentTransform (Node *ancestor) const |
Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. | |
virtual AffineTransform | getNodeToParentAffineTransform (Node *ancestor) const |
Returns the affine transform matrix that transform the node's (local) space coordinates into the parent's space coordinates. | |
virtual void | setNodeToParentTransform (const Mat4 &transform) |
Sets the transformation matrix manually. | |
virtual const Mat4 & | getParentToNodeTransform () const |
Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates. | |
virtual Mat4 | getNodeToWorldTransform () const |
Returns the world affine transform matrix. | |
virtual Mat4 | getWorldToNodeTransform () const |
Returns the inverse world affine transform matrix. | |
Vec2 | convertToNodeSpace (const Vec2 &worldPoint) const |
Converts a Vec2 to node (local) space coordinates. | |
Vec2 | convertToWorldSpace (const Vec2 &nodePoint) const |
Converts a Vec2 to world space coordinates. | |
Vec2 | convertToNodeSpaceAR (const Vec2 &worldPoint) const |
Converts a Vec2 to node (local) space coordinates. | |
Vec2 | convertToWorldSpaceAR (const Vec2 &nodePoint) const |
Converts a local Vec2 to world space coordinates.The result is in Points. | |
Vec2 | convertTouchToNodeSpace (Touch *touch) const |
convenience methods which take a Touch instead of Vec2. | |
Vec2 | convertTouchToNodeSpaceAR (Touch *touch) const |
converts a Touch (world coordinates) into a local coordinate. | |
Vec2 | getWorldPosition () const |
Gets position of node in world space. | |
void | setWorldPosition (const Vec2 &position) |
Sets position of node in world space. | |
void | setAdditionalTransform (const Mat4 *additionalTransform) |
Sets an additional transform matrix to the node. | |
Component * | getComponent (std::string_view name) |
Gets a component by its name. | |
virtual bool | addComponent (Component *component) |
Adds a component. | |
virtual bool | removeComponent (std::string_view name) |
Removes a component by its name. | |
virtual bool | removeComponent (Component *component) |
Removes a component by its pointer. | |
virtual void | removeAllComponents () |
Removes all components. | |
virtual Node * | getChildByTag (int tag) const |
Gets a child from the container with its tag. | |
template<typename T> | |
T | getChildByTag (int tag) const |
Gets a child from the container with its tag that can be cast to Type T. | |
virtual Node * | getChildByName (std::string_view name) const |
Gets a child from the container with its name. | |
template<typename T> | |
T | getChildByName (std::string_view name) const |
Gets a child from the container with its name that can be cast to Type T. | |
virtual void | enumerateChildren (std::string_view name, std::function< bool(Node *node)> callback) const |
Search the children of the receiving node to perform processing for nodes which share a name. | |
virtual Vector< Node * > & | getChildren () |
Returns the array of the node's children. | |
virtual ssize_t | getChildrenCount () const |
Returns the amount of children. | |
virtual void | setParent (Node *parent) |
Sets the parent node. | |
virtual Node * | getParent () |
Returns a pointer to the parent node. | |
virtual void | removeFromParent () |
Removes this node itself from its parent node with a cleanup. | |
virtual void | removeFromParentAndCleanup (bool cleanup) |
Removes this node itself from its parent node. | |
virtual void | removeChildByTag (int tag, bool cleanup=true) |
Removes a child from the container by tag value. | |
virtual void | removeChildByName (std::string_view name, bool cleanup=true) |
Removes a child from the container by tag value. | |
virtual void | removeAllChildren () |
Removes all children from the container with a cleanup. | |
![]() | |
void | retain () |
Retains the ownership. | |
void | release () |
Releases the ownership immediately. | |
Object * | autorelease () |
Releases the ownership sometime soon automatically. | |
unsigned int | getReferenceCount () const |
Returns the Object's current reference count. | |
virtual | ~Object () |
Destructor. | |
Static Public Attributes | |
static const int | INDEX_NOT_INITIALIZED = -1 |
Sprite invalid index on the SpriteBatchNode. | |
![]() | |
static const int | INVALID_TAG = -1 |
Default tag used for all the nodes. | |
Creators | |
static Sprite * | create () |
Creates an empty sprite without texture. | |
static Sprite * | create (std::string_view filename) |
Creates a sprite with an image filename. | |
static Sprite * | create (const PolygonInfo &info) |
Creates a polygon sprite with a polygon info. | |
static Sprite * | create (std::string_view filename, const Rect &rect) |
Creates a sprite with an image filename and a rect. | |
static Sprite * | create (const ax::Data &imageData, std::string_view key) |
Creates a sprite with an image data and an image key. | |
static Sprite * | createWithTexture (Texture2D *texture) |
Creates a sprite with a Texture2D object. | |
static Sprite * | createWithTexture (Texture2D *texture, const Rect &rect, bool rotated=false) |
Creates a sprite with a texture and a rect. | |
static Sprite * | createWithSpriteFrame (SpriteFrame *spriteFrame) |
Creates a sprite with an sprite frame. | |
static Sprite * | createWithSpriteFrameName (std::string_view spriteFrameName) |
Creates a sprite with an sprite frame name. | |
Additional Inherited Members | |
static Node * | create () |
Allocates and initializes a node. | |
static int | getAttachedNodeCount () |
Gets count of nodes those are attached to scene graph. | |
template<typename _T> | |
static void | sortNodes (ax::Vector< _T * > &nodes) |
Sorts helper function. | |
![]() | |
unsigned int | _ID |
object id, ScriptSupport need public _ID | |
int | _luaID |
Lua reference id. | |
Sprite is a 2d image ( http://en.wikipedia.org/wiki/Sprite_(computer_graphics) ).
Sprite can be created with an image, or with a sub-rectangle of an image.
To optimize the Sprite rendering, please follow the following best practices:
Sprite has 4 types or rendering modes:
QUAD
: Renders the sprite using 2 triangles (1 rectangle): uses small memory, but renders empty pixels (slow)POLYGON
: Renders the sprite using many triangles (depending on the setting): Uses more memory, but doesn't render so much empty pixels (faster)SLICE9
: Renders the sprite using 18 triangles (9 rectangles). Useful to to scale buttons an other rectangular spritesQUAD_BATCHNODE
: Renders the sprite using 2 triangles (1 rectangle) with a static batch, which has some limitations (see below)By default, the sprite uses QUAD
mode. But can be changed to POLYGON
when calling setPolygonInfo()
. To use SLICE9
call setCenterRect()
or serCenterRectNormalized()
. To use QUAD_BATCHNODE
parent the sprite to a SpriteBatchNode
object.
QUAD_BATCHNODE
is deprecated and should be avoid. It has the following limitations:
SpriteBatchNode
, so you can't individually set the aliased property.SpriteBatchNode
, so you can't individually set the blending function property.ParallaxNode
is not supported, but can be simulated with a "proxy" sprite.The default anchorPoint in Sprite is (0.5, 0.5).
static Sprite * create | ( | ) |
Creates an empty sprite without texture.
You can call setTexture method subsequently.
|
static |
Creates a sprite with an image filename.
After creation, the rect of sprite will be the size of the image, and the offset will be (0,0).
filename | A path to image file, e.g., "scene1/monster.png". |
|
static |
Creates a polygon sprite with a polygon info.
After creation, the rect of sprite will be the size of the image, and the offset will be (0,0).
polygonInfo | A path to image file, e.g., "scene1/monster.png". |
Creates a sprite with an image filename and a rect.
filename | A path to image file, e.g., "scene1/monster.png". |
rect | A subrect of the image file. |
|
static |
Creates a sprite with an image data and an image key.
imageData | A Data of the image fil. |
key | The unique key for the image in the cache. |
|
static |
Creates a sprite with a texture and a rect.
After creation, the offset will be (0,0).
texture | A pointer to an existing Texture2D object. You can use a Texture2D object for many sprites. |
rect | Only the contents inside the rect of this texture will be applied for this sprite. |
rotated | Whether or not the rect is rotated. |
|
static |
Creates a sprite with an sprite frame.
spriteFrame | A sprite frame which involves a texture and a rect. |
|
static |
Creates a sprite with an sprite frame name.
A SpriteFrame will be fetched from the SpriteFrameCache by spriteFrameName param. If the SpriteFrame doesn't exist it will raise an exception.
spriteFrameName | The name of sprite frame. |
|
virtual |
Returns the batch node object if this sprite is rendered by SpriteBatchNode.
|
virtual |
Sets the batch node to sprite.
|
virtual |
Sets a new texture (from a filename) to the sprite.
It will call setTextureRect()
with the texture's content size.
|
virtual |
Updates the texture rect of the Sprite in points.
It will call setTextureRect(const Rect& rect, bool rotated, const Vec2& untrimmedSize) with rotated
= false, and utrimmedSize
= rect.size.
|
virtual |
Sets the vertex rect.
It will be called internally by setTextureRect. Useful if you want to create 2x images from SD images in Retina Display. Do not call it manually. Use setTextureRect instead.
|
virtual |
setCenterRectNormalized
Useful to implement "9 sliced" sprites. The default value is (0,0) - (1,1), which means that only one "slice" will be used: From top-left (0,0) to bottom-right (1,1). If the value is different than (0,0), (1,1), then the sprite will be sliced into a 3 x 3 grid. The four corners of this grid are applied without performing any scaling. The upper- and lower-middle parts are scaled horizontally, and the left- and right-middle parts are scaled vertically. The center is scaled in both directions. Important: The scaling is based the Sprite's trimmed size.
Limitations: Does not work when the sprite is part of SpriteBatchNode
.
|
virtual |
getCenterRectNormalized
Returns the CenterRect in normalized coordinates
|
virtual |
Returns the Cap Insets rect.
|
virtual |
Sets a new SpriteFrame to the Sprite.
Reimplemented in Scale9Sprite.
|
virtual |
Changes the display frame with animation name and index.
The animation name will be get from the AnimationCache.
|
inlinevirtual |
Whether or not the Sprite needs to be updated in the Atlas.
|
overridevirtual |
Sets the scale (x) of the node.
It is a scaling factor that multiplies the width of the node and its children.
scaleX | The scale factor on X axis. |
Reimplemented from Node.
|
overridevirtual |
Sets the scale (y) of the node.
It is a scaling factor that multiplies the height of the node and its children.
scaleY | The scale factor on Y axis. |
Reimplemented from Node.
|
overridevirtual |
Sets the scale (x,y) of the node.
It is a scaling factor that multiplies the width and height of the node and its children.
scaleX | The scale factor on X axis. |
scaleY | The scale factor on Y axis. |
Reimplemented from Node.
|
overridevirtual |
Sets the position (x,y) of the node in its parent's coordinate system.
Passing two numbers (x,y) is much efficient than passing Vec2 object. This method is bound to Lua and JavaScript. Passing a number is 10 times faster than passing a object from Lua to c++.
x | X coordinate for position. |
y | Y coordinate for position. |
Reimplemented from Node.
|
overridevirtual |
Sets the rotation (angle) of the node in degrees.
0 is the default rotation angle. Positive values rotate node clockwise, and negative values for anti-clockwise.
rotation | The rotation of the node in degrees. |
Reimplemented from Node.
|
overridevirtual |
Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew.
The difference between setRotationalSkew()
and setSkew()
is that the first one simulate Flash's skew functionality, while the second one uses the real skew function.
0 is the default rotation angle. Positive values rotate node clockwise, and negative values for anti-clockwise.
rotationX | The X rotation in degrees which performs a horizontal rotational skew. |
Reimplemented from Node.
|
overridevirtual |
Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
The difference between setRotationalSkew()
and setSkew()
is that the first one simulate Flash's skew functionality, while the second one uses the real skew function.
0 is the default rotation angle. Positive values rotate node clockwise, and negative values for anti-clockwise.
rotationY | The Y rotation in degrees. |
Reimplemented from Node.
|
overridevirtual |
Changes the X skew angle of the node in degrees.
The difference between setRotationalSkew()
and setSkew()
is that the first one simulate Flash's skew functionality while the second one uses the real skew function.
This angle describes the shear distortion in the X direction. Thus, it is the angle between the Y coordinate and the left edge of the shape The default skewX angle is 0. Positive values distort the node in a CW direction.
skewX | The X skew angle of the node in degrees. |
Reimplemented from Node.
|
overridevirtual |
Changes the Y skew angle of the node in degrees.
The difference between setRotationalSkew()
and setSkew()
is that the first one simulate Flash's skew functionality while the second one uses the real skew function.
This angle describes the shear distortion in the Y direction. Thus, it is the angle between the X coordinate and the bottom edge of the shape. The default skewY angle is 0. Positive values distort the node in a CCW direction.
skewY | The Y skew angle of the node in degrees. |
Reimplemented from Node.
|
overridevirtual |
Removes a child from the container.
It will also cleanup all running actions depending on the cleanup parameter.
child | The child node which will be removed. |
cleanup | True if all running actions and callbacks on the child node will be cleanup, false otherwise. |
Reimplemented from Node.
|
overridevirtual |
Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter.
cleanup | True if all running actions on all children nodes should be cleanup, false otherwise. @js removeAllChildren @lua removeAllChildren |
Reimplemented from Node.
|
overridevirtual |
Reorders a child according to a new z value.
child | An already added child node. It MUST be already added. |
localZOrder | Z order for drawing priority. Please refer to setLocalZOrder(int). |
Reimplemented from Node.
|
overridevirtual |
Adds a child to the container with z order and tag.
If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately.
child | A child node. |
localZOrder | Z order for drawing priority. Please refer to setLocalZOrder(int) . |
tag | An integer to identify the node easily. Please refer to setTag(int) . |
Please use addChild(Node* child, int localZOrder, const std::string &name)
instead.
Reimplemented from Node.
|
overridevirtual |
Adds a child to the container with z order and tag.
If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately.
child | A child node. |
localZOrder | Z order for drawing priority. Please refer to setLocalZOrder(int) . |
name | A string to identify the node easily. Please refer to setName(int) . |
Reimplemented from Node.
|
overridevirtual |
Sorts the children array once before drawing, instead of every time when a child is added or reordered.
This approach can improve the performance massively.
Reimplemented from Node.
|
overridevirtual |
Sets the scale (x,y,z) of the node.
It is a scaling factor that multiplies the width, height and depth of the node and its children.
scale | The scale factor for both X and Y axis. |
Reimplemented from Node.
|
overridevirtual |
Sets the 'z' coordinate in the position.
It is the OpenGL Z vertex value.
The OpenGL depth buffer and depth testing are disabled by default. You need to turn them on. In order to use this property correctly.
setPositionZ()
also sets the setGlobalZValue()
with the positionZ as value.
setGlobalZValue()
positionZ | OpenGL Z vertex of this node. @js setVertexZ |
Reimplemented from Node.
|
overridevirtual |
Sets the anchor point in percent.
anchorPoint is the point around which all transformations and positioning manipulations take place. It's like a pin in the node where it is "attached" to its parent. The anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner. But you can use values higher than (1,1) and lower than (0,0) too. The default anchorPoint is (0,0), so it starts in the lower left corner of the node.
anchorPoint | The anchor point of node. |
Reimplemented from Node.
Reimplemented in AnchoredSprite.
|
overridevirtual |
|
overridevirtual |
Sets whether the anchor point will be (0,0) when you position this node.
This is an internal method, only used by Layer and Scene. Don't call it outside framework. The default value is false, while in Layer and Scene are true.
ignore | true if anchor point will be (0,0) when you position this node. |
Reimplemented from Node.
|
overridevirtual |
Sets whether the node is visible.
The default value is true, a node is default to visible.
visible | true if the node is visible, false if the node is hidden. |
Reimplemented from Node.
|
overridevirtual |
Override this method to draw your own node.
The following GL states will be enabled by default:
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);
AND YOU SHOULD NOT DISABLE THEM AFTER DRAWING YOUR NODE But if you enable any other GL state, you should disable it after drawing your node.renderer | A given renderer. |
transform | A transform matrix. |
flags | Renderer flag. |
Reimplemented from Node.
Reimplemented in BillBoard.
|
overridevirtual |
If you want the opacity affect the color property, then set to true.
value | A boolean value. |
Reimplemented from Node.
|
overridevirtual |
If node opacity will modify the RGB color value, then you should override this method and return true.
Reimplemented from Node.
|
inline |
Returns the quad (tex coords, vertex coords and color) information.
@js NA @lua NA
|
inline |
Sets the index used on the TextureAtlas.
|
inline |
Gets the offset position of the sprite.
Calculated automatically by editors like Zwoptex.
bool isFlippedX | ( | ) | const |
Returns the flag which indicates whether the sprite is flipped horizontally or not.
It only flips the texture of the sprite, and not the texture of the sprite's children. Also, flipping the texture doesn't alter the anchorPoint. If you want to flip the anchorPoint too, and/or to flip the children too use: sprite->setScaleX(sprite->getScaleX() * -1);
void setFlippedX | ( | bool | flippedX | ) |
Sets whether the sprite should be flipped horizontally or not.
flippedX | true if the sprite should be flipped horizontally, false otherwise. |
bool isFlippedY | ( | ) | const |
Return the flag which indicates whether the sprite is flipped vertically or not.
It only flips the texture of the sprite, and not the texture of the sprite's children. Also, flipping the texture doesn't alter the anchorPoint. If you want to flip the anchorPoint too, and/or to flip the children too use: sprite->setScaleY(sprite->getScaleY() * -1);
void setFlippedY | ( | bool | flippedY | ) |
Sets whether the sprite should be flipped vertically or not.
flippedY | true if the sprite should be flipped vertically, false otherwise. |
const PolygonInfo & getPolygonInfo | ( | ) | const |
returns a reference of the polygon information associated with this sprite
void setPolygonInfo | ( | const PolygonInfo & | info | ) |
set the sprite to use this new PolygonInfo
PolygonInfo | the polygon information object |
|
inlineoverride |
|
virtual |
Initializes a sprite with a texture.
After initialization, the rect used will be the size of the texture, and the offset will be (0,0).
texture | A pointer to an existing Texture2D object. You can use a Texture2D object for many sprites. |
|
virtual |
Initializes a sprite with a PolygonInfo.
After initialization, the rect used will be the size of the texture, and the offset will be (0,0).
PolygonInfo | a Polygon info contains the structure of the polygon. |
Initializes a sprite with a texture and a rect.
After initialization, the offset will be (0,0).
texture | A pointer to an existing Texture2D object. You can use a Texture2D object for many sprites. |
rect | Only the contents inside rect of this texture will be applied for this sprite. |
Initializes a sprite with a texture and a rect in points, optionally rotated.
After initialization, the offset will be (0,0).
texture | A Texture2D object whose texture will be applied to this sprite. |
rect | A rectangle assigned the contents of texture. |
rotated | Whether or not the texture rectangle is rotated. |
|
virtual |
Initializes a sprite with an SpriteFrame.
The texture and rect in SpriteFrame will be applied on this sprite.
spriteFrame | A SpriteFrame object. It should includes a valid texture and a rect. |
Reimplemented in Scale9Sprite.
|
virtual |
Initializes a sprite with an sprite frame name.
A SpriteFrame will be fetched from the SpriteFrameCache by name. If the SpriteFrame doesn't exist it will raise an exception.
spriteFrameName | A key string that can fetched a valid SpriteFrame from SpriteFrameCache. |
Reimplemented in Scale9Sprite.
|
virtual |
Initializes a sprite with an image filename.
This method will find filename from local file system, load its content to Texture2D, then use Texture2D to create a sprite. After initialization, the rect used will be the size of the image. The offset will be (0,0).
filename | The path to an image file in local file system. |
Reimplemented in Scale9Sprite.
|
virtual |
Initializes a sprite with an image filename, and a rect.
This method will find filename from local file system, load its content to Texture2D, then use Texture2D to create a sprite. After initialization, the offset will be (0,0).
filename | The path to an image file in local file system. |
rect | The rectangle assigned the content area from texture. |
Reimplemented in Scale9Sprite.
|
virtual |
Initializes a sprite with an image data, and a key for the cache.
This method will load the image data to Texture2D, then use Texture2D to create a sprite. After initialization, the offset will be (0,0).
imageData | The image data |
key | The key for cache. |
|
inline |
Indicate if the sprite content size can change if new textures are applied to the sprite.
enabled | True if the sprite can change size on new frames/textures |
|
virtual |
Adds a child to the container with z-order as 0.
If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately.
child | A child node. |
Reimplemented from Node.
|
virtual |
Adds a child to the container with a local z-order.
If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately.
child | A child node. |
localZOrder | Z order for drawing priority. Please refer to setLocalZOrder(int) . |
Reimplemented from Node.