Line |
Branch |
Exec |
Source |
1 |
|
|
/* |
2 |
|
|
** EPITECH PROJECT, 2024 |
3 |
|
|
** zappy |
4 |
|
|
** File description: |
5 |
|
|
** Starlings |
6 |
|
|
*/ |
7 |
|
|
|
8 |
|
|
#ifndef STARLINGS_HPP_ |
9 |
|
|
#define STARLINGS_HPP_ |
10 |
|
|
|
11 |
|
|
#include <SFML/Graphics.hpp> |
12 |
|
|
|
13 |
|
|
#include "../../utils/Lerp.hpp" |
14 |
|
|
#include "../../utils/Random.hpp" |
15 |
|
|
|
16 |
|
|
class Starlings { |
17 |
|
|
public: |
18 |
|
✗ |
Starlings() { |
19 |
|
|
_rotation = Random::random(0, 360); |
20 |
|
✗ |
respawn(); |
21 |
|
✗ |
} |
22 |
|
|
|
23 |
|
✗ |
void respawn() { |
24 |
|
|
int edge = Random::random(0, 4); |
25 |
|
✗ |
if (edge == 0) |
26 |
|
✗ |
_pos = sf::Vector2f(Random::random(0, 1920), 0); |
27 |
|
✗ |
else if (edge == 1) |
28 |
|
✗ |
_pos = sf::Vector2f(Random::random(0, 1920), 1080); |
29 |
|
✗ |
else if (edge == 2) |
30 |
|
✗ |
_pos = sf::Vector2f(0, Random::random(0, 1080)); |
31 |
|
|
else |
32 |
|
✗ |
_pos = sf::Vector2f(1920, Random::random(0, 1080)); |
33 |
|
|
edge = Random::random(0, 4); |
34 |
|
✗ |
if (edge == 0) |
35 |
|
✗ |
_target = sf::Vector2f(Random::random(0, 1920), 0); |
36 |
|
✗ |
else if (edge == 1) |
37 |
|
✗ |
_target = sf::Vector2f(Random::random(0, 1920), 1080); |
38 |
|
✗ |
else if (edge == 2) |
39 |
|
✗ |
_target = sf::Vector2f(0, Random::random(0, 1080)); |
40 |
|
|
else |
41 |
|
✗ |
_target = sf::Vector2f(1920, Random::random(0, 1080)); |
42 |
|
✗ |
} |
43 |
|
|
|
44 |
|
✗ |
void update(float fElapsedTime) { |
45 |
|
✗ |
_pos = Lerp::moveTo(_pos, _target, 100 * fElapsedTime, 5.f); |
46 |
|
✗ |
if (_pos.x == _target.x && _pos.y == _target.y) |
47 |
|
✗ |
respawn(); |
48 |
|
✗ |
_rotation += fElapsedTime * 10; |
49 |
|
✗ |
} |
50 |
|
|
|
51 |
|
|
float _rotation = 0; |
52 |
|
|
sf::Vector2f _pos; |
53 |
|
|
sf::Vector2f _target; |
54 |
|
|
protected: |
55 |
|
|
private: |
56 |
|
|
}; |
57 |
|
|
|
58 |
|
|
#endif /* !STARLINGS_HPP_ */ |
59 |
|
|
|