JugiMap Framework
|
The Sprite is the base sprite class. More...
#include <jmSprites.h>
Inherited by ComposedSprite, SkeletonSprite, StandardSprite, and TextSprite.
Public Types | |
enum | Property |
The Property enumerator provides flags for sprite properties. More... | |
Public Member Functions | |
Sprite () | |
Constructor. More... | |
Sprite * | MakePassiveCopy () |
Create a new sprite which is a passive copy of this sprite. More... | |
Sprite * | MakeActiveCopy () |
Create a new sprite which is an active copy of this sprite. More... | |
virtual void | CopyProperties (Sprite *_sprite, int copyFlags) |
Copy properties from the given **_sprite**. More... | |
virtual void | InitEngineObjects () |
Initialize the engine sprite. More... | |
virtual void | UpdateEngineObjects () |
Update the engine sprite. More... | |
virtual void | DrawEngineSprite () |
Draw the engine sprite. More... | |
virtual bool | IsEngineSpriteInitialized () |
Returns true if the engine sprite of this sprite has been initialized; otherwise returns false. More... | |
virtual void | SetVisible (bool _visible) |
Set the visibility of this sprite. More... | |
bool | IsVisible () |
Returns true if this sprite is visible; otherwise returns false. More... | |
void | SetDisabledEngineSpriteUpdate (bool _engineSpriteUsedDirectly) |
Set a boolean flag which indicates if this sprite's engine sprite is used directly. More... | |
bool | IsEngineSpriteUsedDirectly () |
Returns true if this sprite's engine sprite is used directly. More... | |
virtual void | UpdateBoundingBox () |
Update the map bounding box of this sprite. More... | |
Rectf | GetBoundingBox () |
Returns the world bounding rectangle of this sprite. More... | |
virtual void | CaptureForLerpDrawing () |
Capture the sprite properties, usually the position only, required for the lerp drawing. More... | |
SpriteLayer * | GetLayer () |
Returns a sprite layer where this sprite is stored. More... | |
SourceSprite * | GetSourceSprite () |
Returns the source sprite of this sprite. More... | |
ComposedSprite * | GetParentComposedSprite () |
Returns the parent composed sprite of this sprite. More... | |
SpriteKind | GetKind () |
Returns the kind of this sprite. More... | |
void | SetId (int _id) |
Set the id of this sprite to the given _id. More... | |
int | GetId () |
Returns the id of this sprite. More... | |
void | SetName (const std::string &_nameID) |
Set the name of this sprite to the given _nameID. More... | |
std::string | GetName () |
Returns the name of this sprite. More... | |
void | SetTag (int _tag) |
Set the tag of this sprite to the given _tag. More... | |
int | GetTag () |
Returns the tag of this sprite. More... | |
void | SetCustomObject (CustomObject *_customObject) |
Assign a custom object of this sprite to the given _customObject. More... | |
CustomObject * | GetCustomObject () |
Returns the custom object of this sprite if exists; otherwise returns nullptr. More... | |
std::vector< jugimap::Parameter > & | GetParameters () |
Returns a reference to the vector of stored parameters in this sprite. More... | |
int | GetDataFlags () |
Returns the dataFlags of this sprite. More... | |
void | SetPosition (Vec2f _position) |
Set the position of this sprite to the given **_position**. More... | |
Vec2f | GetPosition (bool _includeAnimatedProperties=true) |
Returns the position of this sprite. More... | |
Vec2f | GetGlobalPosition (bool _includeAnimatedProperties=true) |
Returns the global position of this sprite. More... | |
void | SetScale (Vec2f _scale) |
Set the horizontal and vertical scale factor of this sprite to the given **_scale**. More... | |
Vec2f | GetScale (bool _includeAnimatedProperties=true) |
Returns the horizontal and vertical scale factor of this sprite. More... | |
Vec2f | GetGlobalScale (bool _includeAnimatedProperties=true) |
Returns the global scale factor of this sprite. More... | |
void | SetRotation (float _rotation) |
Set the rotation of this sprite to the given **_rotation**. More... | |
float | GetRotation (bool _includeAnimatedProperties=true) |
Returns the rotation of this sprite in degrees. More... | |
float | GetGlobalRotation (bool _includeAnimatedProperties=true) |
Returns the global rotation of this sprite. More... | |
void | SetFlip (Vec2i _flip) |
Set the horizontal and vertical flip factor of this sprite to the given **_flip**. More... | |
Vec2i | GetFlip (bool _includeAnimatedProperties=true) |
Returns the horizontal and vertical flip factor of this sprite. More... | |
Vec2i | GetGlobalFlip (bool _includeAnimatedProperties=true) |
Returns the horizontal and vertical world flip factor of this sprite. More... | |
virtual void | SetHandle (Vec2f _handle) |
Set the handle point of this sprite to the given **_handle** point. More... | |
Vec2f | GetHandle () |
Returns the handle point of this sprite. More... | |
void | SetAlpha (float _alpha) |
Set the alpha of this sprite to the given **_alpha**. More... | |
float | GetAlpha (bool _includeAnimatedProperties=true) |
Returns the alpha of this sprite. More... | |
void | SetOwnBlend (Blend _blend) |
Set the own blend of this sprite to the given **_blend**. More... | |
Blend | GetOwnBlend () |
Returns the own blend of this sprite. More... | |
void | SetColorOverlayActive (bool _colorOverlayActive) |
Set to true to make the color overlay active; set to false to disable the color overlay. More... | |
bool | IsOverlayColorActive () |
Returns true if the overlay color of this sprite is active; otherwise returns false. More... | |
void | SetColorOverlayRGBA (ColorRGBA _colorOverlayRGBA) |
Set the color overlay of this sprite to the given **_colorOverlayRGBA**. More... | |
ColorRGBA | GetOverlayColorRGBA (bool _includeAnimatedProperties=true) |
Returns the overlay color of this sprite. More... | |
void | SetColorOverlayBlend (ColorOverlayBlend _colorOverlayBlend) |
Set the color overlay blend of this sprite to the given **_colorOverlayBlend**. More... | |
ColorOverlayBlend | GetOverlayColorBlend (bool _includeAnimatedProperties=true) |
Returns the overlay color blend of this sprite. More... | |
AnimatedProperties * | GetAnimatedProperties () |
Returns the pre-animation properties. More... | |
virtual void | CreateAnimatedPropertiesIfNone () |
Store current properties for animation purposes. More... | |
virtual void | ResetAnimatedProperties () |
Set sprite properties to pre-animation state. More... | |
virtual void | AppendAnimatedProperties (AnimatedProperties &_ap) |
Set sprite properties from the given **_ap** object. More... | |
virtual bool | HasCollider () |
Returns true if this sprite has assigned a collider; otherwise returns false. More... | |
virtual bool | PointInside (Vec2f _pos) |
Returns true if the given point **_pos** is inside the shape(s) of this sprite; otherwise returns false. More... | |
virtual bool | Overlaps (Sprite *_sprite) |
Returns true if the shapes of this and the given **_sprite** overelaps; otherwise returns false. More... | |
virtual bool | RaycastHit (Vec2f _rayStart, Vec2f _rayEnd, Vec2f &_hitPos) |
Returns true if a ray (line segment) from **_rayStart** to **_rayEnd** 'hits' at the shape(s) of this sprite; otherwise return false. More... | |
void | SetChangeFlags (int _changeFlags) |
Set the change flags of this sprite to the given *_changeFlags*. More... | |
void | AppendToChangeFlags (int _changeFlags) |
Append the given *_changeFlags* to the change flags of this sprite with a biwise operation. /// The *_changeFlags* must be a value or a bitwise combination of values defined in the Property enumerator. More... | |
int | GetChangeFlags () |
Returns the change flags of this sprite. More... | |
void | _SetSourceSprite (SourceSprite *_sourceSprite) |
Set the source sprite of this sprite to the given **_sourceSprite**. More... | |
void | _SetLayer (SpriteLayer *_spriteLayer) |
Set the layer of this sprite to the given **_sourceSprite**. More... | |
Protected Member Functions | |
virtual | ~Sprite () |
Destructor. More... | |
The Sprite is the base sprite class.
enum Property |
The Property enumerator provides flags for sprite properties.
|
inline |
Constructor.
|
protectedvirtual |
Destructor.
Important: Do not delete sprites directly. Use SpriteLayer::RemoveAndDeleteSprite command:
Sprite * MakePassiveCopy | ( | ) |
Create a new sprite which is a passive copy of this sprite.
Sprites created as passive copies does not have initialized their engine sprite and they are not added to the layer. To display a passive sprite on screen you must turn it into an active copy:
You can also create an active sprite from a passive sprite by using MakeActiveCopy.
Sprite * MakeActiveCopy | ( | ) |
Create a new sprite which is an active copy of this sprite.
Sprites created as an active copies are displayed on screen immediately.
|
virtual |
Copy properties from the given **_sprite**.
The given copyFlags must consists of flags defined in the Property enumerator. Important: This function does not copy core sprite properties: source Sprite, layer, parentComposedSprite;
Reimplemented in TextSprite, and StandardSpriteCC.
|
inlinevirtual |
Initialize the engine sprite.
This function creates and initialize the engine sprite. It gets called in the SpriteLayer::InitEngineLayer at the map engine initialization but we can use it also to initilaze sprites created with MakePassiveCopy.
Reimplemented in SkeletonSprite, TextSprite, ComposedSprite, SkeletonSpriteAGK, TextSpriteAGK, StandardSpriteAGK, TextSpriteSFML, TextSpriteNC, StandardSpriteNC, TextSpriteCC, StandardSpriteSFML, and StandardSpriteCC.
|
inlinevirtual |
Update the engine sprite.
This function updates the engine sprite when properties of the jugimap sprite change. Usually you don't need to use it as other functions call it when required.
Reimplemented in ComposedSprite, SkeletonSpriteAGK, TextSpriteAGK, StandardSpriteAGK, TextSpriteSFML, TextSpriteNC, StandardSpriteNC, TextSpriteCC, StandardSpriteSFML, and StandardSpriteCC.
|
inlinevirtual |
Draw the engine sprite.
This function draws the engine sprite on screen. It is applicable only for engines which do not offer automatic drawing (rendering) of sprites.
Reimplemented in ComposedSprite, TextSpriteSFML, and StandardSpriteSFML.
|
inlinevirtual |
Returns true if the engine sprite of this sprite has been initialized; otherwise returns false.
Reimplemented in TextSpriteAGK, StandardSpriteAGK, TextSpriteSFML, TextSpriteNC, StandardSpriteNC, TextSpriteCC, and StandardSpriteCC.
|
virtual |
Set the visibility of this sprite.
Set the visibility of this text.
Reimplemented in ComposedSprite, and SkeletonSpriteAGK.
|
inline |
Returns true if this sprite is visible; otherwise returns false.
|
inline |
Set a boolean flag which indicates if this sprite's engine sprite is used directly.
By default a jugimap sprite is manipulated via Sprite interface and its engine sprite is updated via UpdateEngineSprite function. If you wish to manipulate the engine sprite directly you should set this flag to true in which case the engine sprite will no longer get updated via UpdateEngineSprite. Be aware that such sprite will also no longer have updated bounding box and colliders. An example of using engine sprites directly is when they are used as dynamic objects in physics engine.
|
inline |
Returns true if this sprite's engine sprite is used directly.
|
inlinevirtual |
Update the map bounding box of this sprite.
The dimensions of bounding box are based on the size of the active texture. If a sprite is not scaled or rotated the bounding box and the texture have the same size. Usually you don't need to use this function as other functions call it when required.
Reimplemented in TextSprite, StandardSprite, and ComposedSprite.
|
inline |
Returns the world bounding rectangle of this sprite.
|
inlinevirtual |
Capture the sprite properties, usually the position only, required for the lerp drawing.
Reimplemented in ComposedSprite, and StandardSpriteSFML.
|
inline |
Returns a sprite layer where this sprite is stored.
|
inline |
Returns the source sprite of this sprite.
|
inline |
Returns the parent composed sprite of this sprite.
If this sprite is not inside a composed sprite returns nullptr.
SpriteKind GetKind | ( | ) |
Returns the kind of this sprite.
The kind factor is the same as the kind of assigned SourceSprite object.
|
inline |
|
inline |
Returns the id of this sprite.
|
inline |
|
inline |
Returns the name of this sprite.
|
inline |
|
inline |
Returns the tag of this sprite.
|
inline |
Assign a custom object of this sprite to the given _customObject.
A custom object is an arbitrary object which can be assigned to a sprite. Important! The sprite takes ownership over the custom object.
|
inline |
Returns the custom object of this sprite if exists; otherwise returns nullptr.
|
inline |
Returns a reference to the vector of stored parameters in this sprite.
These are the parameters defined in Jugimap Editor.
|
inline |
Returns the dataFlags of this sprite.
This is an integer defined in JugiMap Editor.
void SetPosition | ( | Vec2f | _position | ) |
Set the position of this sprite to the given **_position**.
Vec2f GetPosition | ( | bool | _includeAnimatedProperties = true | ) |
Returns the position of this sprite.
This is a local position which is for sprites inside the map layers also a global position. For sprites in layers of a composed sprite this position is relative to the composed sprite coordinate system. If the given *_includeAnimatedProperties* is true, the animated properties are included in the returned value.
Vec2f GetGlobalPosition | ( | bool | _includeAnimatedProperties = true | ) |
Returns the global position of this sprite.
For sprites in map layers this position matches their (local) position. For sprites in layers of a composed sprite this position is their local position converted to global map coordinate system. If the given *_includeAnimatedProperties* is true, the animated properties are included in the returned value.
void SetScale | ( | Vec2f | _scale | ) |
Set the horizontal and vertical scale factor of this sprite to the given **_scale**.
Vec2f GetScale | ( | bool | _includeAnimatedProperties = true | ) |
Returns the horizontal and vertical scale factor of this sprite.
This is a local scale factor which is for sprites inside the map layers also a global scale factor. If the given *_includeAnimatedProperties* is true, the animated properties are included in the returned value.
Vec2f GetGlobalScale | ( | bool | _includeAnimatedProperties = true | ) |
void SetRotation | ( | float | _rotation | ) |
Set the rotation of this sprite to the given **_rotation**.
The rotation is in degrees.
float GetRotation | ( | bool | _includeAnimatedProperties = true | ) |
Returns the rotation of this sprite in degrees.
This is a local rotation which is for sprites inside the map layers also a global rotation. If the given *_includeAnimatedProperties* is true, the animated properties are included in the returned value.
float GetGlobalRotation | ( | bool | _includeAnimatedProperties = true | ) |
Returns the global rotation of this sprite.
For sprites in map layers this rotation matches the (local) rotation. If the given *_includeAnimatedProperties* is true, the animated properties are included in the returned value.
void SetFlip | ( | Vec2i | _flip | ) |
Set the horizontal and vertical flip factor of this sprite to the given **_flip**.
Vec2i GetFlip | ( | bool | _includeAnimatedProperties = true | ) |
Returns the horizontal and vertical flip factor of this sprite.
The flip value 1 means that a sprite is flipped, the value 0 means that it is not. This is a local flip factor which is for sprites inside the map layers also a global flip factor. If the given *_includeAnimatedProperties* is true, the animated properties are included in the returned value.
Vec2i GetGlobalFlip | ( | bool | _includeAnimatedProperties = true | ) |
Returns the horizontal and vertical world flip factor of this sprite.
The flip value 1 means that a sprite is flipped, the value 0 means that it is not. For sprites in map layers this flip factor matches the (local) flip factor. If the given *_includeAnimatedProperties* is true, the animated properties are included in the returned value.
|
virtual |
Set the handle point of this sprite to the given **_handle** point.
The handle point is a point in the sprite local coordinates, relative to which the sprite transformations are being applied. This point is automatically assigned to the handle point of the active image (for the standard sprites). You can manually use this function to set an arbitrary handle point but be aware that changing the active image will set the sprite handle point again to that of the image. The sprite shapes are also relative to the image handle point and will no longer be correct if you set a different handle point.
|
inline |
Returns the handle point of this sprite.
void SetAlpha | ( | float | _alpha | ) |
Set the alpha of this sprite to the given **_alpha**.
The alpha is an opacity factor in the range of [0.0 - 1.0].
float GetAlpha | ( | bool | _includeAnimatedProperties = true | ) |
void SetOwnBlend | ( | Blend | _blend | ) |
Set the own blend of this sprite to the given **_blend**.
The own blend is a Blend factor assigned to a sprite. If the own blend is not defined (Blend::NOT_DEFINED) then the Blend factor of the sprite layer will be used.
|
inline |
Returns the own blend of this sprite.
void SetColorOverlayActive | ( | bool | _colorOverlayActive | ) |
Set to true to make the color overlay active; set to false to disable the color overlay.
The color overlay is a color overlayed over a sprite.
bool IsOverlayColorActive | ( | ) |
Returns true if the overlay color of this sprite is active; otherwise returns false.
void SetColorOverlayRGBA | ( | ColorRGBA | _colorOverlayRGBA | ) |
Set the color overlay of this sprite to the given **_colorOverlayRGBA**.
ColorRGBA GetOverlayColorRGBA | ( | bool | _includeAnimatedProperties = true | ) |
Returns the overlay color of this sprite.
If the given *_includeAnimatedProperties* is true, the animated properties are included in the returned value.
void SetColorOverlayBlend | ( | ColorOverlayBlend | _colorOverlayBlend | ) |
Set the color overlay blend of this sprite to the given **_colorOverlayBlend**.
This blending works the same as blending in painting applications when you overlay layers.
ColorOverlayBlend GetOverlayColorBlend | ( | bool | _includeAnimatedProperties = true | ) |
Returns the overlay color blend of this sprite.
If the given *_includeAnimatedProperties* is true, the animated properties are included in the returned value.
|
inline |
Returns the pre-animation properties.
|
virtual |
Store current properties for animation purposes.
This function is usually called from animation objects.
|
virtual |
Set sprite properties to pre-animation state.
This function is usually called from animation objects.
Reimplemented in ComposedSprite.
|
virtual |
Set sprite properties from the given **_ap** object.
This function is usually called from animation objects.
Reimplemented in StandardSprite.
|
inlinevirtual |
Returns true if this sprite has assigned a collider; otherwise returns false.
A collider is assigned to sprites which have SourceSprite with defined sprite shapes.
Reimplemented in StandardSprite, and ComposedSprite.
|
inlinevirtual |
Returns true if the given point **_pos** is inside the shape(s) of this sprite; otherwise returns false.
The given point must be in global coordinate system. This function uses a sprite collider to obtain the result. It returns false if this sprite has no collider assigned.
Reimplemented in TextSprite, StandardSprite, and ComposedSprite.
|
inlinevirtual |
Returns true if the shapes of this and the given **_sprite** overelaps; otherwise returns false.
This function uses sprite colliders to obtain the result. It returns false if one or both of sprites is without a collider.
Reimplemented in StandardSprite, and ComposedSprite.
Returns true if a ray (line segment) from **_rayStart** to **_rayEnd** 'hits' at the shape(s) of this sprite; otherwise return false.
If the 'hit' occurs its position get stored in the given **_hitPos**. This function uses sprite colliders to obtain the result. It returns false if this sprite has no collider assigned.
Reimplemented in StandardSprite, and ComposedSprite.
void SetChangeFlags | ( | int | _changeFlags | ) |
Set the change flags of this sprite to the given *_changeFlags*.
The *_changeFlags* must be a value or a bitwise combination of values defined in the Property enumerator.
void AppendToChangeFlags | ( | int | _changeFlags | ) |
Append the given *_changeFlags* to the change flags of this sprite with a biwise operation. /// The *_changeFlags* must be a value or a bitwise combination of values defined in the Property enumerator.
|
inline |
Returns the change flags of this sprite.
|
inline |
Set the source sprite of this sprite to the given **_sourceSprite**.
This function must never be used on already created sprites. It should be used only for purposes of manual sprite creation.
|
inline |
Set the layer of this sprite to the given **_sourceSprite**.
This function must never be used on already created sprites. It should be used only for purposes of manual sprite creation.