#ifndef SUPERTUX_BACKGROUND_H
#define SUPERTUX_BACKGROUND_H
+#include <memory>
#include "video/surface.hpp"
#include "video/drawing_context.hpp"
#include "game_object.hpp"
void set_image(const std::string& name, float bkgd_speed);
- void set_gradient(Color top, Color bottom);
-
std::string get_image() const
- { return imagefile; }
+ { return imagefile; }
float get_speed() const
- { return speed; }
- Color get_gradient_top() const
- { return gradient_top; }
- Color get_gradient_bottom() const
- { return gradient_bottom; }
+ { return speed; }
virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
private:
- enum Type {
- INVALID, GRADIENT, IMAGE
- };
-
- Type type;
int layer;
+ std::string imagefile_top;
std::string imagefile;
- float speed;
- Surface* image;
- Color gradient_top, gradient_bottom;
+ std::string imagefile_bottom;
+ Vector pos; /**< coordinates of upper-left corner of image */
+ float speed; /**< scroll-speed in horizontal direction */
+ float speed_y; /**< scroll-speed in vertical direction */
+ std::auto_ptr<Surface> image_top; /**< image to draw above pos */
+ std::auto_ptr<Surface> image; /**< image to draw, anchored at pos */
+ std::auto_ptr<Surface> image_bottom; /**< image to draw below pos+<screenheight> */
};
#endif /*SUPERTUX_BACKGROUND_H*/