Drawable representation of a texture. More...
#include <Sprite.h>
Public Types | |
using | Ptr = std::shared_ptr< Sprite > |
Shared sprite pointer. More... | |
Public Member Functions | |
Sprite () | |
Construct an empty sprite. More... | |
Sprite (const std::string &texture) | |
Construct a sprite from a texture. More... | |
Sprite (const Texture &texture) | |
Construct a sprite from a texture. More... | |
Sprite (const Texture &texture, const UIntRect &rectangle) | |
Construct the sprite from a sub-rectangle of a source texture. More... | |
Sprite (const Sprite &) | |
Copy constructor. More... | |
Sprite & | operator= (const Sprite &) |
Copy assignment operator. More... | |
Sprite (Sprite &&) noexcept | |
Move constructor. More... | |
Sprite & | operator= (Sprite &&) noexcept |
Move assignment operator. More... | |
std::string | getClassName () const override |
Get the name of this class. More... | |
void | setTexture (const std::string &filename) |
Set the texture of the object. More... | |
void | setTexture (const Texture &texture) |
Set the texture of the sprite from a source texture. More... | |
const Texture & | getTexture () const |
Get the name of the texture used by the sprite. More... | |
void | setTextureRect (unsigned int left, unsigned int top, unsigned int width, unsigned int height) |
Set the sub-rectangle of the texture that the sprite will display. More... | |
void | setTextureRect (const UIntRect &rect) |
Set the sub-rectangle of the texture that the sprite will display. More... | |
UIntRect | getTextureRect () const |
Get the sub-rectangle of the texture displayed by the sprite. More... | |
void | setColour (Colour colour) |
Set the colour of the sprite. More... | |
Colour | getColour () const |
Get the colour of the sprite. More... | |
void | setVisible (bool visible) |
Show or hide the sprite. More... | |
bool | isVisible () const |
Check whether or not the sprite is visible. More... | |
void | toggleVisibility () |
Toggle the visibility of the sprite. More... | |
FloatRect | getLocalBounds () const |
Get the local bounding rectangle of the sprite. More... | |
FloatRect | getGlobalBounds () const |
Get the global bounding rectangle of the sprite. More... | |
void | setPosition (float x, float y) override |
Set the position of the sprite. More... | |
void | setPosition (Vector2f position) override |
Set the position of the sprite. More... | |
Vector2f | getPosition () const override |
Get the position of the sprite. More... | |
void | setRotation (float angle) override |
Set the orientation of the sprite. More... | |
void | rotate (float angle) override |
Rotate the sprite. More... | |
float | getRotation () const override |
Get the orientation of the sprite. More... | |
void | setScale (float factorX, float factorY) override |
Set the scale factors of the sprite. More... | |
void | setScale (Vector2f scale) override |
Set the scale factor of the sprite. More... | |
void | scale (float factorX, float factorY) override |
Scale the sprite by an offset. More... | |
void | scale (Vector2f offset) override |
Scale the sprite by an offset. More... | |
Vector2f | getScale () const override |
Get the current scale of the sprite. More... | |
void | setOrigin (float x, float y) override |
Set the local origin of the sprite. More... | |
void | setOrigin (Vector2f origin) override |
Set the local origin of the sprite. More... | |
Vector2f | getOrigin () const override |
Get the local origin of the sprite. More... | |
void | move (float offsetX, float offsetY) override |
Move the sprite by a given offset. More... | |
void | move (Vector2f offset) override |
Move the sprite by a given offset. More... | |
void | draw (Window &renderTarget) const override |
Draw object on a render target. More... | |
Animator & | getAnimator () |
Get the sprites animator. More... | |
void | updateAnimation (Time deltaTime) |
Update the current animation. More... | |
void | swap (Sprite &other) |
Swap this sprite with another sprite. More... | |
~Sprite () override | |
Destructor. More... | |
std::string | getClassType () const override |
Get the name of this class. More... | |
void | setTag (const std::string &tag) |
Assign the object an alias. More... | |
const std::string & | getTag () const |
Get the alias of the object. More... | |
unsigned int | getObjectId () const |
Get the id of the object. More... | |
int | onPropertyChange (const std::string &property, const Callback< Property > &callback) |
Add an event listener to a specific property change event. More... | |
void | onPropertyChange (const Callback< Property > &callback) |
Add an event listener to a property change event. More... | |
int | onEvent (const std::string &event, const Callback<> &callback) |
Add an event listener to an event. More... | |
bool | unsubscribe (const std::string &event, int id) |
Remove an event listener from an event. More... | |
int | onDestruction (const Callback<> &callback) |
Add a destruction listener. More... | |
bool | removeDestructionListener (int id) |
Remove a destruction listener form the object. More... | |
bool | operator== (const Object &rhs) const |
Check if two objects are the same object or not. More... | |
bool | operator!= (const Object &rhs) const |
Check if two objects are not the same object. More... | |
Protected Member Functions | |
void | emitChange (const Property &property) |
Dispatch a property change event. More... | |
void | emit (const std::string &event) |
Dispatch an action event. More... | |
Drawable representation of a texture.
The sprite can be static (display a single non changing texture) or animated via its animator (see the getAnimator function)
using ime::Sprite::Ptr = std::shared_ptr<Sprite> |
ime::Sprite::Sprite | ( | ) |
Construct an empty sprite.
|
explicit |
Construct a sprite from a texture.
texture | Filename of the texture to construct the sprite from |
|
explicit |
Construct a sprite from a texture.
texture | Texture to construct sprite from |
Construct the sprite from a sub-rectangle of a source texture.
texture | The source texture |
rectangle | Sub-rectangle of the texture to assign to the sprite |
This function is a shortcut for:
ime::Sprite::Sprite | ( | const Sprite & | ) |
Copy constructor.
|
noexcept |
Move constructor.
|
override |
Destructor.
|
overridevirtual |
Draw object on a render target.
renderTarget | Target to draw object on |
Implements ime::Drawable.
|
protectedinherited |
Dispatch an action event.
event | The name of the event to be dispatched |
This function will invoke all event listeners of the specified event. The function should be used for events that represent an action, rather than those that represent a property change (Use emitChange for that)
|
protectedinherited |
Dispatch a property change event.
property | The property that changed |
This function will invoke all the event listeners of the specified property
Animator& ime::Sprite::getAnimator | ( | ) |
Get the sprites animator.
This function enables the sprite to be animated
checkout the Animator class
|
overridevirtual |
|
inlineoverridevirtualinherited |
Get the name of this class.
Note that this function is only overridden by child classes of Object which also serve as a base class for other classes
Reimplemented from ime::Object.
Reimplemented in ime::Shape.
Definition at line 48 of file Drawable.h.
Colour ime::Sprite::getColour | ( | ) | const |
Get the colour of the sprite.
FloatRect ime::Sprite::getGlobalBounds | ( | ) | const |
Get the global bounding rectangle of the sprite.
The returned rectangle is in global coordinates, which means that it takes into account the transformations (translation, rotation, scale, ...) that are applied to the sprite. In other words, this function returns the bounds of the sprite in the global 2D world's coordinate system
FloatRect ime::Sprite::getLocalBounds | ( | ) | const |
Get the local bounding rectangle of the sprite.
The returned rectangle is in local coordinates, which means that it ignores the transformations (translation, rotation, scale, ...) that are applied to the sprite. In other words, this function returns the bounds of the sprite in the sprite's coordinate system
|
inherited |
Get the id of the object.
Each object has a unique id
|
overridevirtual |
Get the local origin of the sprite.
Implements ime::ITransformable.
|
overridevirtual |
Get the position of the sprite.
Implements ime::ITransformable.
|
overridevirtual |
Get the orientation of the sprite.
The rotation is always in the range [0, 360]
Implements ime::ITransformable.
|
overridevirtual |
Get the current scale of the sprite.
Implements ime::ITransformable.
|
inherited |
const Texture& ime::Sprite::getTexture | ( | ) | const |
Get the name of the texture used by the sprite.
UIntRect ime::Sprite::getTextureRect | ( | ) | const |
Get the sub-rectangle of the texture displayed by the sprite.
bool ime::Sprite::isVisible | ( | ) | const |
Check whether or not the sprite is visible.
|
overridevirtual |
Move the sprite by a given offset.
offsetX | Horizontal offset |
offsetY | Vertical offset |
This function adds to the current position of the sprite, unlike setPosition which overwrites it
Implements ime::ITransformable.
|
overridevirtual |
Move the sprite by a given offset.
offset | Offset to apply |
This function adds to the current position of the sprite, unlike setPosition which overwrites it
Implements ime::ITransformable.
|
inherited |
Add a destruction listener.
callback | Function to be executed when the object is destroyed |
Note that an object may have more than one destruction listeners, however, you have to keep the returned id if you may want to remove the callback at a later time
|
inherited |
Add an event listener to an event.
event | The name of the event to add an an event listener to |
callback | The function to be executed when the event takes place |
Unlike onPropertyChange, this function registers event listeners to events that occur when something happens to the object, or when the object does something (action events). Usually the name of the event/action is the name of the function:
Add an event listener to a property change event.
callback | The function to be executed when the property changes |
Note that only one callback function may be registered with this function. This means that adding a new event listener overwrites the previous event listener. To remove the callback, pass a nullptr as an argument. The function may be useful if you want to write the logic for property changes in one function.
|
inherited |
Add an event listener to a specific property change event.
property | The name of the property to listen for |
callback | The function to be executed when the property changes |
A property change event is triggered by any function that begins with set, where the the text after set is the name of the property. For example, for the setTag function, the property that the function modifies is Tag.
Note that when adding a property change event listener, the name of the property must be in lowercase:
Unlike onPropertyChange(const Callback&) you can add multiple event listeners to the same property using this function. However you must store the unique id of the event listener if you wish to remove it at a later time
|
inherited |
Check if two objects are not the same object.
rhs | Object to compare against this object |
Two objects are different from each other if they have different object id's
|
inherited |
Check if two objects are the same object or not.
rhs | Object to compare against this object |
Two objects are the same object if they have the same object id. Recall that each object instance has a unique id
|
inherited |
Remove a destruction listener form the object.
The | id of the destruction listener to be removed |
|
overridevirtual |
Rotate the sprite.
angle | Angle of rotation, in degrees |
This function adds to the current rotation of the sprite, unlike setRotation which overwrites it
Implements ime::ITransformable.
|
overridevirtual |
Scale the sprite by an offset.
factorX | Horizontal scale factor |
factorY | Vertical scale factor |
This function multiplies the current scale of the sprite, unlike setScale which overwrites it
Implements ime::ITransformable.
|
overridevirtual |
Scale the sprite by an offset.
offset | Offset to apply |
This function multiplies the current scale of the sprite, unlike setScale which overwrites it
Implements ime::ITransformable.
void ime::Sprite::setColour | ( | Colour | colour | ) |
Set the colour of the sprite.
colour | New colour opf the sprite |
|
overridevirtual |
Set the local origin of the sprite.
x | X coordinate of the new origin |
y | Y coordinate of the new origin |
The origin of the sprite defines the center point for all transformations (position, scale, rotation). The coordinates of this point must be relative to the top-left corner of the sprite, and ignore all transformations (position, scale, rotation).
The default origin of the sprite is (0, 0)
Implements ime::ITransformable.
|
overridevirtual |
Set the local origin of the sprite.
origin | New origin |
The origin of the sprite defines the center point for all transformations (position, scale, rotation). The coordinates of this point must be relative to the top-left corner of the sprite, and ignore all transformations (position, scale, rotation).
The default origin of the sprite is (0, 0)
Implements ime::ITransformable.
|
overridevirtual |
Set the position of the sprite.
x | X coordinate of the new position |
y | Y coordinate of the new position |
This function completely overwrites the previous position. use move function to apply an offset based on the previous position instead
The default position of a the sprite is (0, 0)
Implements ime::ITransformable.
|
overridevirtual |
Set the position of the sprite.
position | New position |
This function completely overwrites the previous position. Use the move function to apply an offset based on the previous position instead.
The default position of the sprite is (0, 0)
Implements ime::ITransformable.
|
overridevirtual |
Set the orientation of the sprite.
angle | New rotation, in degrees |
This function completely overwrites the previous rotation. See the rotate function to add an angle based on the previous rotation instead.
The default rotation of the sprite is 0
Implements ime::ITransformable.
|
overridevirtual |
Set the scale factors of the sprite.
factorX | New horizontal scale factor |
factorY | New vertical scale factor |
This function completely overwrites the previous scale
Implements ime::ITransformable.
|
overridevirtual |
Set the scale factor of the sprite.
scale | New scale |
This function completely overwrites the previous scale
Implements ime::ITransformable.
|
inherited |
Assign the object an alias.
name | The alias of the object |
This function is useful if you want to refer to the object by tag instead of its id. Unlike an object id, multiple objects may have the same tag.
By default, the tag is an empty string
void ime::Sprite::setTexture | ( | const std::string & | filename | ) |
Set the texture of the object.
filename | Filename of the texture to set |
FileNotFound | if the specified texture cannot be found in the images path |
This function will set the texture to the whole image
void ime::Sprite::setTexture | ( | const Texture & | texture | ) |
Set the texture of the sprite from a source texture.
texture | The source texture |
The texture argument refers to a texture that must exist as long as the sprite uses it. Indeed, the sprite doesn't store its own copy of the texture, but rather keeps a pointer to the one that you passed to this function. If the source texture is destroyed and the sprite tries to use it, the behavior is undefined
void ime::Sprite::setTextureRect | ( | const UIntRect & | rect | ) |
Set the sub-rectangle of the texture that the sprite will display.
rect | The rectangle to set |
This function will set the texture that the sprite displays to a portion of the entire texture.
By default, the sprite displays the entire texture
void ime::Sprite::setTextureRect | ( | unsigned int | left, |
unsigned int | top, | ||
unsigned int | width, | ||
unsigned int | height | ||
) |
Set the sub-rectangle of the texture that the sprite will display.
left | horizontal starting position |
top | Vertical starting position |
width | Width of the sub-rectangle |
height | Height of the sub-rectangle |
This function will set the texture that the sprite displays to a portion of the entire texture. The displaying will start at the specified starting position
By default, the sprite displays the entire texture
void ime::Sprite::setVisible | ( | bool | visible | ) |
Show or hide the sprite.
visible | True to show or false to hide |
When hidden the sprite will not be shown on the render target
By default, the sprite is visible
void ime::Sprite::swap | ( | Sprite & | other | ) |
Swap this sprite with another sprite.
other | The sprite to be swapped with this sprite |
void ime::Sprite::toggleVisibility | ( | ) |
Toggle the visibility of the sprite.
This function will hide the sprite if its currently visible or show it if it is currently hidden
|
inherited |
Remove an event listener from an event.
event | The name of the event to remove event listener from |
id | The unique id of the event listener to be removed |
void ime::Sprite::updateAnimation | ( | Time | deltaTime | ) |
Update the current animation.
deltaTime | Time passed since last animation update |
This function need only be called if the sprite is animatable and not just displaying a single static image