|
supertux
|
This is the base class for particle systems. More...
#include <particlesystem.hpp>
Classes | |
| class | Particle |
Public Member Functions | |
| ParticleSystem (const ReaderMapping &reader, float max_particle_size=60) | |
| ParticleSystem (float max_particle_size=60) | |
| virtual void | draw (DrawingContext &context) override |
| The GameObject should draw itself onto the provided DrawingContext if this function is called. More... | |
| virtual std::string | get_class () const override |
| virtual std::string | get_display_name () const override |
| virtual ObjectSettings | get_settings () override |
| void | set_enabled (bool enabled_) |
| bool | get_enabled () const |
| int | get_layer () const |
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 | update (float dt_sec)=0 |
| This function is called once per frame and allows the object to update it's state. More... | |
| void | save (Writer &writer) |
| This function saves the object. More... | |
| 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 | has_settings () const |
| Indicates if get_settings() is implemented. More... | |
| virtual void | after_editor_set () |
| bool | is_valid () const |
| returns true if the object is not scheduled to be removed yet | |
| void | remove_me () |
| schedules this object to be removed at the end of the frame | |
| 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 |
| 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 | editor_delete () |
| The editor requested the deletion of the object. | |
| virtual void | editor_select () |
| The user clicked on the object in the editor and selected it. | |
| 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... | |
Public Member Functions inherited from ExposedObject< ParticleSystem, scripting::ParticleSystem > | |
| ExposedObject (ParticleSystem *parent) | |
| Constructor. More... | |
| virtual void | expose (HSQUIRRELVM vm, SQInteger table_idx) override |
| Exposes the parent GameObject to the script Interface. More... | |
| virtual void | unexpose (HSQUIRRELVM vm, SQInteger table_idx) override |
| Un-exposes the parent GameObject to the script Interface. More... | |
Protected Attributes | |
| float | max_particle_size |
| int | z_pos |
| std::vector< std::unique_ptr< Particle > > | particles |
| float | virtual_width |
| float | virtual_height |
| bool | enabled |
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 | |
This is the base class for particle systems.
It is responsible for storing a set of particles with each having an x- and y-coordinate the number of the layer where it should be drawn and a texture.
The coordinate system used here is a virtual one. It would be a bad idea to populate whole levels with particles. So we're using a virtual rectangle here that is tiled onto the level when drawing. This rect.has the size (virtual_width, virtual_height). We're using modulo on the particle coordinates, so when a particle leaves left, it'll reenter at the right side.
Classes that implement a particle system should subclass from this class, initialize particles in the constructor and move them in the simulate function.
|
overridevirtual |
The GameObject should draw itself onto the provided DrawingContext if this function is called.
Implements GameObject.
Reimplemented in ParticleSystem_Interactive.
1.8.12