#define NO_BOUNCE 0
#define BOUNCE 1
+namespace SuperTux {
class Sprite;
+}
struct TileId;
TileId& shape;
};
-class FloatingScore : public GameObject
+class FloatingText : public GameObject
{
public:
- FloatingScore(const Vector& pos, int s);
+ FloatingText(const Vector& pos, const std::string& text_);
+ FloatingText(const Vector& pos, int s); // use this for score, for instance
virtual void action(float elapsed_time);
virtual void draw(DrawingContext& context);
private:
Vector position;
- char str[10];
+ std::string text;
Timer timer;
};
-#define TRAMPOLINE_FRAMES 4
-extern Sprite *img_trampoline[TRAMPOLINE_FRAMES];
+extern Sprite *img_trampoline;
class Trampoline : public MovingObject, public Serializable
{
unsigned int frame;
};
+extern Sprite *img_smoke_cloud;
+
+class SmokeCloud : public GameObject
+{
+public:
+ SmokeCloud(const Vector& pos);
+
+ virtual void action(float elapsed_time);
+ virtual void draw(DrawingContext& context);
+
+private:
+ Timer timer;
+ Vector position;
+};
+
+class Particles : public GameObject
+{
+public:
+ Particles(const Vector& epicenter, const Vector& velocity, const Vector& acceleration, int number, Color color, int size, int life_time);
+ ~Particles();
+
+ virtual void action(float elapsed_time);
+ virtual void draw(DrawingContext& context);
+
+private:
+ Color color;
+ float size;
+ Vector vel, accel;
+ Timer timer;
+ bool live_forever;
+
+ struct Particle {
+ Vector pos;
+ float angle;
+ };
+ std::vector <Particle*> particles;
+};
+
void load_object_gfx();
#endif