-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDot.cpp
35 lines (32 loc) · 1.49 KB
/
Dot.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "Dot.h"
#include "cmath"
#include <iostream>
sf::Vector2f randomPosition(Dot *dot, int height, int width) {
sf::Vector2f random_number;
random_number.x = float((int) random() % int(width - 4 * (int) dot->size)) + 2 * dot->size;
random_number.y = float((int) random() % int(height - 4 * (int) dot->size)) + 2 * dot->size;
// std::cout << random_number.x << ' ' << random_number.y << '\n';
return random_number;
}
void initDot(Dot *dot, int height, int width) {
dot->texture.loadFromFile("images/dot.png");
dot->size = 23;
dot->position = randomPosition(dot, height, width);
dot->sprite.setPosition(dot->position);
dot->sprite.setTexture(dot->texture);
dot->sprite.setColor(sf::Color(251, 133, 0, 255));
}
void dotUpdate(Dot *dot, int height, int width, Vadim *vadim) {
sf::Vector2f position_vadim, position_dot;
position_vadim.y = vadim->position.y - 2 * vadim->size;
position_vadim.x = vadim->position.x - 2 * vadim->size;
position_dot.y = dot->position.y - 2 * dot->size;
position_dot.x = dot->position.x - 2 * dot->size;
float distance_vadim_dot = sqrt((position_vadim.x - position_dot.x) * (position_vadim.x - position_dot.x) +
(position_vadim.y - position_dot.y) * (position_vadim.y - position_dot.y));
if (distance_vadim_dot <= (dot->size + vadim->size)) {
vadim->counter++;
dot->position = randomPosition(dot, height, width);
dot->sprite.setPosition(dot->position);
}
}