supertux
floating_image.hpp
1 // SuperTux
2 // Copyright (C) 2006 Matthias Braun <matze@braunis.de>
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 
17 #ifndef HEADER_SUPERTUX_OBJECT_FLOATING_IMAGE_HPP
18 #define HEADER_SUPERTUX_OBJECT_FLOATING_IMAGE_HPP
19 
20 #include "math/anchor_point.hpp"
21 #include "sprite/sprite_ptr.hpp"
22 #include "supertux/game_object.hpp"
23 
24 class FloatingImage final : public GameObject
25 {
26 public:
27  FloatingImage(const std::string& sprite);
28  virtual ~FloatingImage();
29  virtual bool is_saveable() const override {
30  return false;
31  }
32 
33  void set_layer(int layer_) {
34  layer = layer_;
35  }
36 
37  int get_layer() const {
38  return layer;
39  }
40 
41  void set_pos(const Vector& pos_) {
42  pos = pos_;
43  }
44  const Vector& get_pos() const {
45  return pos;
46  }
47 
48  void set_anchor_point(AnchorPoint anchor_) {
49  anchor = anchor_;
50  }
51  AnchorPoint get_anchor_point() const {
52  return anchor;
53  }
54 
55  void set_visible(bool visible_) {
56  visible = visible_;
57  }
58  bool get_visible() const {
59  return visible;
60  }
61 
62  void set_action(const std::string& action);
63  std::string get_action();
64 
65  void fade_in(float fadetime);
66  void fade_out(float fadetime);
67 
68  virtual void update(float dt_sec) override;
69  virtual void draw(DrawingContext& context) override;
70 
71 private:
72  SpritePtr sprite;
73  int layer;
74  bool visible;
75  AnchorPoint anchor;
76  Vector pos;
77  float fading;
78  float fadetime;
79 };
80 
81 #endif
82 
83 /* EOF */
virtual void update(float dt_sec) override
This function is called once per frame and allows the object to update it&#39;s state.
Definition: floating_image.cpp:39
virtual void draw(DrawingContext &context) override
The GameObject should draw itself onto the provided DrawingContext if this function is called...
Definition: floating_image.cpp:83
virtual bool is_saveable() const override
Indicates if the object will be saved.
Definition: floating_image.hpp:29
Simple two dimensional vector.
Definition: vector.hpp:24
Definition: floating_image.hpp:24
Base class for all the things that make up Levels&#39; Sectors.
Definition: game_object.hpp:46
This class provides functions for drawing things on screen.
Definition: drawing_context.hpp:42