1 #include <Display/Animations/AnimationSnakes.hpp> 2 #include <Engine/Graphics/Colors.hpp> 3 #include <Engine/Helpers/Utils.hpp> 5 AnimationSnakes::AnimationSnakes(Window* window):
8 void AnimationSnakes::load()
15 void AnimationSnakes::update()
18 int delay = Utils::Random::between(1, 3) * 100;
20 if ((addTimer.delta_ms() > delay) &&
21 (this->lilsnakes.size() < MAX_SNAKES))
26 if (Utils::Random::booleanWithChance(0.2501))
28 for (
int i = 0; i < Utils::Random::between(3, 5); i++)
38 if (updateTimer.delta_ms() > 50)
40 std::vector<LilSnake>::iterator it = this->lilsnakes.begin();
42 while (it != this->lilsnakes.end())
44 if (((*it).y - (*it).size) > (this->window->getH() - 1))
46 it = this->lilsnakes.erase(it);
57 void AnimationSnakes::draw()
59 for (
unsigned int i = 0; i < (this->lilsnakes.size()); i++)
61 window->printChar(
'@',
64 Colors::pair(
"green",
"default",
true));
66 for (
int j = 1; j < (this->lilsnakes[i].size); j++)
68 window->printChar(
'o',
70 this->lilsnakes[i].y - j,
71 Colors::pair(
"green",
"default"));
76 void AnimationSnakes::addSnake()
78 int newx = Utils::Random::between(1, this->window->getW() - 1);
79 int newy = Utils::Random::between(0, 3);
80 int size = Utils::Random::between(2, 14);
82 this->lilsnakes.push_back(
LilSnake(newx, newy, size));