// $Id$
-//
+//
// SuperTux
-// Copyright (C) 2000 Bill Kendrick <bill@newbreedsoftware.com>
-// Copyright (C) 2004 Tobias Glaesser <tobi.web@gmx.de>
+// Copyright (C) 2006 Matthias Braun <matze@braunis.de>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
-//
+//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
#ifndef SUPERTUX_GAMEOBJS_H
#define SUPERTUX_GAMEOBJS_H
#include "video/surface.hpp"
#include "timer.hpp"
-#include "physic.hpp"
#include "game_object.hpp"
#include "moving_object.hpp"
#include "serializable.hpp"
class BouncyCoin : public GameObject
{
public:
- BouncyCoin(const Vector& pos);
+ BouncyCoin(const Vector& pos, bool emerge=false);
~BouncyCoin();
virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
Sprite* sprite;
Vector position;
Timer timer;
+ float emerge_distance;
};
class BrokenBrick : public GameObject
class FloatingText : public GameObject
{
+ static Color text_color;
public:
FloatingText(const Vector& pos, const std::string& text_);
FloatingText(const Vector& pos, int s); // use this for score, for instance
-
+
virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
private:
Vector position;
std::string text;
- Timer timer;
+ Timer timer;
};
-extern Sprite *img_smoke_cloud;
-
class SmokeCloud : public GameObject
{
public:
SmokeCloud(const Vector& pos);
-
- virtual void update(float elapsed_time);
- virtual void draw(DrawingContext& context);
-
-private:
- Timer timer;
- Vector position;
-};
+ ~SmokeCloud();
-class Particles : public GameObject
-{
-public:
- 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 update(float elapsed_time);
virtual void draw(DrawingContext& context);
private:
- Vector accel;
+ Sprite* sprite;
Timer timer;
- bool live_forever;
-
- Color color;
- float size;
- int drawing_layer;
-
- struct Particle {
- Vector pos, vel;
-// float angle;
- };
- std::vector <Particle*> particles;
+ Vector position;
};
-void load_object_gfx();
-void free_object_gfx();
-
-#endif
+#endif
/* Local Variables: */
/* mode:c++ */