public:
BouncyDistro(DisplayManager& displaymanager, const Vector& pos);
virtual void action(float elapsed_time);
- virtual void draw(ViewPort& viewport, int layer);
- virtual std::string type() const
- { return "BouncyDistro"; };
+ virtual void draw(Camera& viewport, int layer);
private:
Vector position;
const Vector& pos, const Vector& movement);
virtual void action(float elapsed_time);
- virtual void draw(ViewPort& viewport, int layer);
-
- virtual std::string type() const
- { return "BrokenBrick"; };
+ virtual void draw(Camera& viewport, int layer);
private:
Timer timer;
public:
BouncyBrick(DisplayManager& displaymanager, const Vector& pos);
virtual void action(float elapsed_time);
- virtual void draw(ViewPort& viewport, int layer);
+ virtual void draw(Camera& viewport, int layer);
- virtual std::string type() const
- { return "BouncyBrick"; };
-
private:
Vector position;
float offset;
FloatingScore(DisplayManager& displaymanager, const Vector& pos, int s);
virtual void action(float elapsed_time);
- virtual void draw(ViewPort& viewport, int layer);
- virtual std::string type() const
- { return "FloatingScore"; };
+ virtual void draw(Camera& viewport, int layer);
private:
Vector position;
virtual void write(LispWriter& writer);
virtual void action(float frame_ratio);
- virtual void draw(ViewPort& viewport, int layer);
- virtual std::string type() const
- { return "Trampoline"; };
+ virtual void draw(Camera& viewport, int layer);
virtual void collision(const MovingObject& other, int);
void collision(void *p_c_object, int c_object, CollisionType type);
unsigned int frame;
};
+class FlyingPlatform : public MovingObject, public Drawable, public Serializable
+{
+public:
+ FlyingPlatform(DisplayManager& displaymanager, LispReader& reader);
+
+ virtual void write(LispWriter& writer);
+ virtual void action(float frame_ratio);
+ virtual void draw(Camera& viewport, int layer);
+
+ 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<int> pos_x;
+ std::vector<int> pos_y;
+ float velocity;
+
+ float vel_x, vel_y; // calculated based in the velocity
+
+ int point;
+ bool move;
+ unsigned int frame;
+};
+
void load_object_gfx();
#endif