Bubble.h (919B)
1 #pragma once 2 #include "Entity.h" 3 #include <string> 4 5 class Bubble : public Entity { 6 private: 7 static constexpr const char *BUBBLE_FRAMES[3] = {".", "o", "O"}; 8 static constexpr int FRAMES_PER_ANIMATION = 9; 9 static constexpr int MAX_FRAME_INDEX = 2; 10 static constexpr char BUBBLE_COLOR = 'c'; 11 12 int lifetime = 0; 13 std::vector<std::string> current_image; 14 std::vector<std::string> current_mask; 15 16 void updateFrame(); 17 18 public: 19 Bubble(float x, float y); 20 21 void update() noexcept override; 22 const std::vector<std::string> &getImage() const override { 23 return current_image; 24 } 25 const std::vector<std::string> &getMask() const override { 26 return current_mask; 27 } 28 char getDefaultColor() const noexcept override { return BUBBLE_COLOR; } 29 30 bool shouldBeRemoved() const noexcept override; 31 std::unique_ptr<Entity> createReplacement() const override; 32 int getPreferredLayer() const noexcept override; 33 };