[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

#### 4.2.4.8 Explosion Class

This is a very simple class that keeps track of an explosion. Once the explosion particle system has died out the instance of this class will be removed as well.

    class Explosion
    {
    private:
      csRef<iMeshWrapper> mesh;
      int timeleft;

    public:
      Explosion (iMeshWrapper* mesh, int timeleft);

      bool Handle (csTicks elapsed_ticks);

      iMeshWrapper* GetMesh () const { return mesh; }
    };

The main function here is the `Handle()` function. This one takes the elapsed ticks (i.e. milliseconds) since last frame which it will use to decide when to delete the explosion mesh.

    Explosion::Explosion (iMeshWrapper* mesh, int timeleft)
    {
      Explosion::mesh = mesh;
      Explosion::timeleft = timeleft;
    }

    bool Explosion::Handle (csTicks elapsed_ticks)
    {
      timeleft -= elapsed_ticks;
      if (timeleft <= 0)
      {
        return false;
      }
      return true;
    }

The implementation is very simple. The `Explosion` class is instantiated with a certain lifetime (see later). Every frame `Handle()` will be called which will subtract the elapsed ticks from the lifetime. When the lifetime becomes smaller or equal then 0 then the explosion should be removed.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ]

This document was generated using texi2html 1.76.