supertux
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MovingSprite Class Reference

Abstract base class for ""MovingObject""s, that are represented by a sprite. More...

#include <moving_sprite.hpp>

Inheritance diagram for MovingSprite:
Inheritance graph
[legend]
Collaboration diagram for MovingSprite:
Collaboration graph
[legend]

Public Member Functions

 MovingSprite (const Vector &pos, const std::string &sprite_name, int layer=LAYER_OBJECTS, CollisionGroup collision_group=COLGROUP_MOVING)
 
 MovingSprite (const ReaderMapping &reader, const Vector &pos, int layer=LAYER_OBJECTS, CollisionGroup collision_group=COLGROUP_MOVING)
 
 MovingSprite (const ReaderMapping &reader, const std::string &sprite_name, int layer=LAYER_OBJECTS, CollisionGroup collision_group=COLGROUP_MOVING)
 
 MovingSprite (const ReaderMapping &reader, int layer=LAYER_OBJECTS, CollisionGroup collision_group=COLGROUP_MOVING)
 
virtual void draw (DrawingContext &context) override
 The GameObject should draw itself onto the provided DrawingContext if this function is called. More...
 
virtual void update (float dt_sec) override
 This function is called once per frame and allows the object to update it's state. More...
 
virtual std::string get_class_name () const override
 
virtual std::string get_exposed_class_name () const override
 
virtual GameObjectClasses get_class_types () const override
 List notable classes in inheritance hierarchy of class. More...
 
virtual ObjectSettings get_settings () override
 
virtual void after_editor_set () override
 
virtual void on_type_change (int old_type) override
 
virtual int get_layer () const override
 
bool has_found_sprite () const
 
const std::string & get_sprite_name () const
 
virtual std::string get_default_sprite_name () const
 
bool matches_sprite (const std::string &sprite_file) const
 
bool change_sprite (const std::string &new_sprite_name)
 
void spawn_explosion_sprites (int count, const std::string &sprite_path)
 
Spriteget_sprite () const
 Get various sprite properties. More...
 
std::string get_action () const
 Returns the name of the current action of the sprite.
 
void set_action (const std::string &name)
 Sets the current action of the sprite and resizes the bounding box. More...
 
void set_action_loops (const std::string &name, int loops)
 Sets the current action of the sprite, as well as the number of times it should loop, and resizes the bounding box. More...
 
void set_action (const std::string &name, int loops)
 Sets the action from an action name, as well as the number of times it should loop. More...
 
void set_action (const std::string &name, const Direction &dir, int loops=-1)
 Sets the action from an action name and a particular direction in the form of "name-direction", eg. More...
 
void set_action (const Direction &dir, const std::string &name, int loops=-1)
 Sets the action from an action name and a particular direction in the form of "direction-name", eg. More...
 
void set_action (const Direction &dir, int loops=-1)
 Sets the action from a string from a particular direction in the form of "direction", e.g. More...
 
void set_action_centered (const std::string &action, int loops=-1)
 Set new action for sprite and re-center bounding box. More...
 
void set_action (const std::string &action, int loops, AnchorPoint anchorPoint)
 Set new action for sprite and align bounding boxes at anchorPoint. More...
 
- Public Member Functions inherited from MovingObject
 MovingObject (const ReaderMapping &reader)
 
virtual void collision_solid (const CollisionHit &) override
 this function is called when the object collided with something solid
 
virtual bool collides (GameObject &, const CollisionHit &) const override
 when 2 objects collided, we will first call the collision functions of both objects that can decide on how to react to the collision. More...
 
virtual void collision_tile (uint32_t) override
 called when tiles with special attributes have been touched
 
virtual void set_pos (const Vector &pos)
 
virtual void move_to (const Vector &pos)
 
virtual void move (const Vector &dist)
 
virtual bool listener_is_valid () const override
 
Vector get_pos () const
 
const Rectfget_bbox () const
 
const Vector & get_movement () const
 
CollisionGroup get_group () const
 
CollisionObjectget_collision_object ()
 
const CollisionObjectget_collision_object () const
 
void set_parent_dispenser (Dispenser *dispenser)
 
Dispenserget_parent_dispenser () const
 
virtual void editor_select () override
 The user clicked on the object in the editor and selected it.
 
virtual void on_flip (float height) override
 When level is flipped vertically.
 
float get_x () const
 Returns the object's X coordinate.
 
float get_y () const
 Returns the object's Y coordinate.
 
void set_pos (float x, float y)
 Sets the position of the object. More...
 
void move (float x, float y)
 Moves the object by ""x"" units to the right and ""y"" down, relative to its current position. More...
 
float get_width () const
 Returns the object's hitbox width.
 
float get_height () const
 Returns the object's hitbox height.
 
- Public Member Functions inherited from GameObject
 GameObject (const std::string &name)
 
 GameObject (const ReaderMapping &reader)
 
virtual void finish_construction ()
 Called after all objects have been added to the Sector and the Sector is fully constructed. More...
 
UID get_uid () const
 
virtual void save (Writer &writer)
 This function saves the object. More...
 
std::string save ()
 
virtual std::string get_display_name () const
 Returns the display name of the object, translated to the user's locale.
 
virtual std::vector< std::string > get_patches () const
 Version checking/updating, patch information.
 
virtual void update_version ()
 
int get_version () const
 Returns the current version of the object.
 
int get_latest_version () const
 Returns the latest version of the object.
 
bool is_up_to_date () const
 Checks whether the object's current version is equal to its latest one.
 
virtual bool is_singleton () const
 If true only a single object of this type is allowed in a given GameObjectManager.
 
virtual bool has_variable_size () const
 Does this object have variable size (secret area trigger, wind, etc.)
 
virtual bool is_saveable () const
 Indicates if the object will be saved. More...
 
virtual bool track_state () const
 Indicates if the object's state should be tracked. More...
 
virtual bool has_object_manager_priority () const
 Indicates if the object should be added at the beginning of the object list. More...
 
virtual bool has_settings () const
 Indicates if get_settings() is implemented. More...
 
virtual GameObjectTypes get_types () const
 Get all types of the object, if available. More...
 
int get_type () const
 Returns the type index of the object.
 
virtual void remove_me ()
 schedules this object to be removed at the end of the frame
 
bool is_valid () const
 returns true if the object is not scheduled to be removed yet
 
void add_remove_listener (ObjectRemoveListener *listener)
 registers a remove listener which will be called if the object gets removed/destroyed
 
void del_remove_listener (ObjectRemoveListener *listener)
 unregisters a remove listener, so it will no longer be called if the object gets removed/destroyed
 
void set_name (const std::string &name)
 
const std::string & get_name () const
 Returns the name of the object.
 
virtual const std::string get_icon_path () const
 
virtual void stop_looping_sounds ()
 stops all looping sounds
 
virtual void play_looping_sounds ()
 continues all looping sounds
 
template<typename T >
T * get_component ()
 
void add_component (std::unique_ptr< GameObjectComponent > component)
 
void remove_component (GameObjectComponent *component)
 
virtual void save_state ()
 Save/check the current state of the object. More...
 
virtual void check_state ()
 
virtual void editor_delete ()
 The editor requested the deletion of the object.
 
virtual void editor_deselect ()
 The object got deselected.
 
virtual void editor_update ()
 Called each frame in the editor, used to keep linked objects together (e.g. More...
 
GameObjectManagerget_parent () const
 
- Public Member Functions inherited from CollisionListener
virtual HitResponse collision (GameObject &other, const CollisionHit &hit)=0
 this function is called when the object collided with any other object
 

Static Public Member Functions

static void register_class (ssq::VM &vm)
 
static std::string class_name ()
 
- Static Public Member Functions inherited from MovingObject
static void register_class (ssq::VM &vm)
 
static std::string class_name ()
 
- Static Public Member Functions inherited from GameObject
static void register_class (ssq::VM &vm)
 

Protected Member Functions

virtual void update_hitbox ()
 Update hitbox, based on sprite. More...
 
- Protected Member Functions inherited from MovingObject
void set_group (CollisionGroup group)
 
- Protected Member Functions inherited from GameObject
void parse_type (const ReaderMapping &reader)
 Parse object type. More...
 
int type_id_to_value (const std::string &id) const
 Conversion between type ID and value. More...
 
std::string type_value_to_id (int value) const
 

Protected Attributes

std::string m_sprite_name
 
std::string m_default_sprite_name
 The default sprite for this MovingObject. More...
 
SpritePtr m_sprite
 
int m_layer
 Sprite's z-position. More...
 
Flip m_flip
 
- Protected Attributes inherited from MovingObject
CollisionObject m_col
 
Dispenserm_parent_dispenser
 
- Protected Attributes inherited from GameObject
std::string m_name
 a name for the gameobject, this is mostly a hint for scripts and for debugging, don't rely on names being set or being unique
 
int m_type
 Type of the GameObject. More...
 
std::vector< std::unique_ptr< FadeHelper > > m_fade_helpers
 Fade Helpers are for easing/fading script functions.
 
bool m_track_undo
 Track the following creation/deletion of this object for undo. More...
 

Additional Inherited Members

- Protected Types inherited from GameObject
enum  TypeChange { INITIAL = -1 }
 When the type has been changed from the editor. More...
 

Detailed Description

Abstract base class for ""MovingObject""s, that are represented by a sprite.

Member Function Documentation

◆ draw()

void MovingSprite::draw ( DrawingContext context)
overridevirtual

◆ get_class_types()

virtual GameObjectClasses MovingSprite::get_class_types ( ) const
inlineoverridevirtual

List notable classes in inheritance hierarchy of class.

This makes it possible to efficiently look up all objects deriving from a particular intermediate class

Reimplemented from MovingObject.

Reimplemented in CrusherRoot, StickyTrigger, HeavyCoin, SpritedTrigger, LiveFireDormant, StickyBadguy, LiveFireAsleep, Crusher, HeavyBrick, BadGuy, WillOWisp, Dispenser, LeafShot, BonusBlock, worldmap::SpawnPointObject, MrBomb, Platform, WalkingBadguy, Granito, DiveMine, MrIceBlock, Decal, Flame, ConveyorBelt, Torch, Haywire, LitObject, ScriptedObject, Owl, CorruptedGranito, Dart, GranitoBig, MoleRock, Coin, SkyDive, Snail, Candle, Stalactite, MagicBlock, UnstableTile, FishJumping, FishSwimming, GhostTree, RootSapling, WalkingCandle, FallBlock, BouncingSnowball, Jumpy, Kugelblitz, PowerUp, Rock, RustyTrampoline, AngryStone, Igel, Root, Tarantula, Zeekling, BigSnowball, LiveFire, Mole, Stumpy, Toad, Yeti, Bumper, Firefly, Key, Lantern, SSpiky, Totem, InfoBlock, Trampoline, worldmap::WorldMapObject, GoldBomb, WeakBlock, worldmap::LevelTile, worldmap::SpecialTile, CorruptedGranitoBig, DartTrap, CirclePlatform, Explosion, Ispy, Shard, worldmap::SpriteChange, FishChasing, KamikazeSnowball, Plant, YetiStalactite, Brick, RubLight, worldmap::Teleporter, Crystallo, FlyingSnowBall, RCrystallo, ViciousIvy, WalkingLeaf, CaptainSnowball, GranitoGiant, MrTree, SmartBall, PushButton, StickyObject, Boss, Ghoul, SCrystallo, Spiky, Block, HurtingPlatform, Door, FishHarmless, ShortFuse, SmartBlock, SnowBall, InvisibleBlock, Switch, Snowman, BicyclePlatformChild, PneumaticPlatformChild, TreeWillOWisp, WaterDrop, Star, GrowUp, and OneUp.

◆ get_sprite()

Sprite* MovingSprite::get_sprite ( ) const
inline

Get various sprite properties.

◆ on_type_change()

void MovingSprite::on_type_change ( int  old_type)
overridevirtual

Don't change the sprite/layer to the default one for the current type, if this is the initial on_type_change() call, and a custom sprite/layer has just been loaded.

Reimplemented from GameObject.

◆ set_action() [1/6]

void MovingSprite::set_action ( const std::string &  name)

Sets the current action of the sprite and resizes the bounding box.

NOTE: Use with care as you can easily get stuck when resizing the bounding box.

Parameters
string$name

◆ set_action() [2/6]

void MovingSprite::set_action ( const std::string &  name,
int  loops 
)

Sets the action from an action name, as well as the number of times it should loop.

◆ set_action() [3/6]

void MovingSprite::set_action ( const std::string &  name,
const Direction &  dir,
int  loops = -1 
)

Sets the action from an action name and a particular direction in the form of "name-direction", eg.

"walk-left".

◆ set_action() [4/6]

void MovingSprite::set_action ( const Direction &  dir,
const std::string &  name,
int  loops = -1 
)

Sets the action from an action name and a particular direction in the form of "direction-name", eg.

"left-up".

◆ set_action() [5/6]

void MovingSprite::set_action ( const Direction &  dir,
int  loops = -1 
)

Sets the action from a string from a particular direction in the form of "direction", e.g.

"left".

◆ set_action() [6/6]

void MovingSprite::set_action ( const std::string &  action,
int  loops,
AnchorPoint  anchorPoint 
)

Set new action for sprite and align bounding boxes at anchorPoint.

use with care as you can easily get stuck when resizing the bounding box.

◆ set_action_centered()

void MovingSprite::set_action_centered ( const std::string &  action,
int  loops = -1 
)

Set new action for sprite and re-center bounding box.

use with care as you can easily get stuck when resizing the bounding box.

◆ set_action_loops()

void MovingSprite::set_action_loops ( const std::string &  name,
int  loops 
)

Sets the current action of the sprite, as well as the number of times it should loop, and resizes the bounding box.

NOTE: Use with care as you can easily get stuck when resizing the bounding box.

Parameters
string$name
int$loops

◆ update()

void MovingSprite::update ( float  dt_sec)
overridevirtual

This function is called once per frame and allows the object to update it's state.

The dt_sec is the time that has passed since the last frame in seconds and should be the base for all timed calculations (don't use SDL_GetTicks directly as this will fail in pause mode). This function is not called in the Editor.

Implements GameObject.

Reimplemented in CrusherRoot, StickyTrigger, SpritedTrigger, HeavyCoin, BadGuy, Crusher, Decal, ConveyorBelt, worldmap::WorldMapObject, Platform, Coin, Torch, Explosion, LitObject, MagicBlock, Door, ScriptedObject, Block, StickyObject, UnstableTile, Switch, PneumaticPlatformChild, BicyclePlatformChild, BigSnowball, Bumper, Firefly, OneUp, Rock, RustyTrampoline, FishSwimming, FallBlock, GrowUp, InfoBlock, Ispy, Key, PowerUp, WaterDrop, WeakBlock, Star, RubLight, Shard, Trampoline, YetiStalactite, CirclePlatform, and PushButton.

◆ update_hitbox()

void MovingSprite::update_hitbox ( )
protectedvirtual

Update hitbox, based on sprite.

Reimplemented in Granito.

Member Data Documentation

◆ m_default_sprite_name

std::string MovingSprite::m_default_sprite_name
protected

The default sprite for this MovingObject.

NOTE: Unless in a constructor, use get_default_sprite_name() instead, so support for sprite switching for object types is retained.

◆ m_layer

int MovingSprite::m_layer
protected

Sprite's z-position.

Refer to video/drawing_context.hpp for sensible values.


The documentation for this class was generated from the following files: