X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fgameobjs.h;h=5ebbe07dfda7a12c81355e9158703dfbe70e3ff3;hb=ee6972038331a3c26a2a6a0bdb2baca25475b1d2;hp=d5e779c96583026c985f3bd04fa90b5fc087e08b;hpb=de51923531f5ddc3a793f3cd8c11f9a78e5f4897;p=supertux.git diff --git a/src/gameobjs.h b/src/gameobjs.h index d5e779c96..5ebbe07df 100644 --- a/src/gameobjs.h +++ b/src/gameobjs.h @@ -22,9 +22,8 @@ #ifndef SUPERTUX_GAMEOBJS_H #define SUPERTUX_GAMEOBJS_H -#include "special/base.h" #include "video/surface.h" -#include "special/timer.h" +#include "timer.h" #include "scene.h" #include "math/physic.h" #include "collision.h" @@ -41,70 +40,52 @@ namespace SuperTux { class Sprite; } -struct TileId; - -class BouncyDistro : public GameObject +class BouncyCoin : public GameObject { public: - BouncyDistro(const Vector& pos); + BouncyCoin(const Vector& pos); + ~BouncyCoin(); virtual void action(float elapsed_time); virtual void draw(DrawingContext& context); private: + Sprite* sprite; Vector position; - float ym; + Timer2 timer; }; -extern Surface* img_distro[4]; - -#define BOUNCY_BRICK_MAX_OFFSET 8 -#define BOUNCY_BRICK_SPEED 0.9 - -class Tile; - class BrokenBrick : public GameObject { public: - BrokenBrick(Tile* tile, const Vector& pos, const Vector& movement); + BrokenBrick(Sprite* sprite, const Vector& pos, const Vector& movement); + ~BrokenBrick(); virtual void action(float elapsed_time); virtual void draw(DrawingContext& context); private: - Timer timer; - Tile* tile; + Timer2 timer; + Sprite* sprite; Vector position; Vector movement; }; -class BouncyBrick : public GameObject -{ -public: - BouncyBrick(const Vector& pos); - virtual void action(float elapsed_time); - virtual void draw(DrawingContext& context); - -private: - Vector position; - float offset; - float offset_m; - 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]; - Timer timer; + std::string text; + Timer2 timer; }; +#if 0 extern Sprite *img_trampoline; class Trampoline : public MovingObject, public Serializable @@ -127,39 +108,7 @@ public: float power; unsigned int frame; }; - -extern Sprite *img_flying_platform; - -class FlyingPlatform : public MovingObject, public Serializable -{ -public: - FlyingPlatform(LispReader& reader); - FlyingPlatform(int x, int y); - - virtual void write(LispWriter& writer); - virtual void action(float frame_ratio); - virtual void draw(DrawingContext& context); - - virtual void collision(const MovingObject& other, int); - void collision(void *p_c_object, int c_object, CollisionType type); - - float get_vel_x() { return vel_x; } - float get_vel_y() { return vel_y; } - - Physic physic; - enum { M_NORMAL, M_HELD } mode; - - private: - std::vector pos_x; - std::vector pos_y; - float velocity; - - float vel_x, vel_y; // calculated based in the velocity - - int point; - bool move; - unsigned int frame; -}; +#endif extern Sprite *img_smoke_cloud; @@ -172,33 +121,39 @@ public: virtual void draw(DrawingContext& context); private: - Timer timer; + Timer2 timer; Vector position; }; class Particles : public GameObject { public: - Particles(const Vector& epicenter, int number, Color color, int size, float velocity, int life_time); + Particles(const Vector& epicenter, int min_angle, int max_angle, + const Vector& initial_velocity, const Vector& acceleration, + int number, Color color, int size, float life_time, int drawing_layer); ~Particles(); virtual void action(float elapsed_time); virtual void draw(DrawingContext& context); private: + Vector accel; + Timer2 timer; + bool live_forever; + Color color; float size; - float velocity; - Timer timer; + int drawing_layer; struct Particle { - Vector pos; - float angle; + Vector pos, vel; +// float angle; }; std::vector particles; }; void load_object_gfx(); +void free_object_gfx(); #endif