Abstract base class for image containers. More...
#include <SpriteImage.h>
Public Types | |
using | Ptr = std::shared_ptr< SpriteImage > |
A shared sprite pointer. More... | |
Public Member Functions | |
SpriteImage () | |
Default constructor. More... | |
SpriteImage (const std::string &sourceTexture, UIntRect area={}) | |
Constructor. More... | |
void | create (const std::string &sourceTexture, UIntRect area={}) |
Create the sprite image. More... | |
SpriteImage (const SpriteImage &)=default | |
Copy constructor. More... | |
SpriteImage & | operator= (const SpriteImage &)=default |
Copy assignment operator. More... | |
SpriteImage (SpriteImage &&) noexcept=default | |
Move constructor. More... | |
SpriteImage & | operator= (SpriteImage &&) noexcept=default |
Move assignment operator. More... | |
Vector2u | getSize () const |
Get the size of the sprite image in pixels. More... | |
unsigned int | getWidth () const |
Get the width of the sprite image in pixels. More... | |
unsigned int | getHeight () const |
Get the height of the sprite image in pixels. More... | |
std::string | getClassType () const override |
Get the name of this class. More... | |
const Texture & | getTexture () const |
Get the source texture of the sprite image. More... | |
Vector2u | getRelativePosition () const |
Get the top-left position of the sprite image relative to the sprite image source texture. More... | |
~SpriteImage () override | |
Destructor. More... | |
void | setTag (const std::string &tag) |
Assign the object an alias. More... | |
const std::string & | getTag () const |
Get the tag assigned to the object. More... | |
unsigned int | getObjectId () const |
Get the unique id of the object. More... | |
virtual std::string | getClassName () const =0 |
Get the name of the objects concrete class. More... | |
int | onPropertyChange (const std::string &property, const Callback< Property > &callback, bool oneTime=false) |
Add an event listener to a specific property change event. More... | |
int | onPropertyChange (const Callback< Property > &callback, bool oneTime=false) |
Add an event listener to any property change event. More... | |
void | suspendedEventListener (int id, bool suspend) |
Pause or resume execution of an event listener. More... | |
bool | isEventListenerSuspended (int id) const |
Check if an event listener is suspended or not. More... | |
bool | removeEventListener (const std::string &event, int id) |
Remove an event listener from an event. More... | |
bool | removeEventListener (int id) |
Remove an event listener. More... | |
int | onDestruction (const Callback<> &callback) |
Add a destruction listener. More... | |
bool | isSameObjectAs (const Object &other) const |
Check if another object is the same instance as this object. More... | |
Protected Member Functions | |
bool | contains (Vector2u point) const |
Check if the sprite image contains a point or not. More... | |
void | emitChange (const Property &property) |
Dispatch a property change event. More... | |
void | emitDestruction () |
Emit a destruction event. More... | |
Protected Attributes | |
EventEmitter | eventEmitter_ |
Event dispatcher. More... | |
Abstract base class for image containers.
A sprite image is a collection of smaller images packed together into a single image. The sub-images may be of the same size or of varying dimensions. In addition, the sub-images may be arranged in grid formation or tightly packed next to each other in the sprite image. A sprite image simplifies file management and increases performance as we only have to deal with a single texture instead of multiple textures. For example, imagine a character which has a walking and running animation in all four directions (Up, right. down and left) and each animation has 15 frames. This would require 120 individual images files!. With a sprite image all that information can be stored in a single image file and accessed later using coordinates or indexes
Definition at line 51 of file SpriteImage.h.
using ime::SpriteImage::Ptr = std::shared_ptr<SpriteImage> |
A shared sprite pointer.
Definition at line 53 of file SpriteImage.h.
ime::SpriteImage::SpriteImage | ( | ) |
|
explicit |
Constructor.
sourceTexture | The filename of the sprite image on the disk |
area | Sub-rectangle to construct sprite image from |
FileNotFoundException | If the image could not be found on the disk |
The area can be used to construct the sprite image from a sub-rectangle of the sourceTexture. To construct the sprite image from the whole sourceTexture (default), leave the area argument unspecified. If the area rectangle crosses the bounds of the sourceTexture, it is adjusted to fit the sourceTexture size
|
default |
Copy constructor.
|
defaultnoexcept |
Move constructor.
|
override |
Destructor.
|
protected |
Check if the sprite image contains a point or not.
point | The point to be checked |
void ime::SpriteImage::create | ( | const std::string & | sourceTexture, |
UIntRect | area = {} |
||
) |
Create the sprite image.
sourceTexture | The filename of the sprite image on the disk |
area | Sub-rectangle to construct sprite image from |
FileNotFoundException | If the image could not be found on the disk |
The area can be used to construct the sprite image from a sub-rectangle of the sourceTexture. To construct the sprite image from the whole sourceTexture (default), leave the area argument unspecified. If the area rectangle crosses the bounds of the sourceTexture, it is adjusted to fit the sourceTexture size
|
protectedinherited |
Dispatch a property change event.
property | The property that changed |
This function will invoke all the event listeners of the specified property
|
protectedinherited |
Emit a destruction event.
|
pure virtualinherited |
Get the name of the objects concrete class.
This function is implemented by all internal classes that inherit from this class (either directly or indirectly). Example:
Implemented in ime::audio::Music, ime::audio::SoundEffect, ime::GameObject, ime::GridObject, ime::CyclicGridMover, ime::GridMover, ime::KeyboardGridMover, ime::RandomGridMover, ime::TargetGridMover, ime::AABB, ime::BoxCollider, ime::CircleCollider, ime::EdgeCollider, ime::PolygonCollider, ime::DistanceJoint, ime::RigidBody, ime::RenderLayer, ime::RenderLayerContainer, ime::Scene, ime::Camera, ime::CircleShape, ime::ConvexShape, ime::RectangleShape, ime::Sprite, ime::SpriteSheet, and ime::Tile.
|
overridevirtual |
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.
unsigned int ime::SpriteImage::getHeight | ( | ) | const |
Get the height of the sprite image in pixels.
|
inherited |
Get the unique id of the object.
Note that each instance of ime::Object has a unique id
Vector2u ime::SpriteImage::getRelativePosition | ( | ) | const |
Get the top-left position of the sprite image relative to the sprite image source texture.
If the sprite image was created from the whole source texture, this function returns {0, 0}
Vector2u ime::SpriteImage::getSize | ( | ) | const |
Get the size of the sprite image in pixels.
The x component is width whilst the y component is the height of the sprite image
|
inherited |
const Texture & ime::SpriteImage::getTexture | ( | ) | const |
Get the source texture of the sprite image.
unsigned int ime::SpriteImage::getWidth | ( | ) | const |
Get the width of the sprite image in pixels.
|
inherited |
Check if an event listener is suspended or not.
id | The identification number of the listener to be checked |
This function also returns false if the specified event listener does not exist
|
inherited |
Check if another object is the same instance as this object.
other | The object to compare against this object |
|
inherited |
Add a destruction listener.
callback | Function to be executed when the object is destroyed |
The destruction listener is called when the object reaches the end of its lifetime. Note that an object may have multiple destruction listeners registered to it
|
inherited |
Add an event listener to any property change event.
callback | The function to be executed when any property changes |
oneTime | True to execute the callback one-time or false to execute it every time the event is triggered |
When unsubscribing the any property change event handler, you must pass "propertyChange" as the name of the event
|
inherited |
Add an event listener to a specific property change event.
property | The name of the property to add an event listener to |
oneTime | True to execute the callback one-time or false to execute it every time the event is triggered |
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, the setTag() function, modifies the tag property of the object, thus will generate a "tag" change event each time it is called
Note that multiple event listeners may be registered to the same property change event. In addition, when adding a property change event listener, the name of the property must be in lowercase.
|
default |
Copy assignment operator.
|
defaultnoexcept |
Move assignment operator.
|
inherited |
Remove an event listener from an event.
event | The name of the event to remove an event listener from |
id | The unique id of the event listener to be removed |
|
inherited |
Remove an event listener.
id | The id of the event listener to be removed |
|
inherited |
Assign the object an alias.
tag | The alias of the object |
This function is useful if you want to refer to the object by a tag instead of its object id. Unlike an object id, multiple objects may have the same tag
By default, the tag is an empty string
|
inherited |
Pause or resume execution of an event listener.
id | The event listeners unique identification number |
suspend | True to suspend/pause or false to unsuspend/resume |
|
protectedinherited |