-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAsteroid.cpp
47 lines (36 loc) · 1.32 KB
/
Asteroid.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
36
37
38
39
40
41
42
43
44
45
46
47
#include "Asteroid.h"
#include <stdlib.h>
Asteroid::Asteroid() : Entity() {
spr.rotate(rand() % 360);
rotation_speed = 10.f * ((rand() % 10) - 5);
}
Asteroid::Asteroid(sf::Texture& tex) : Entity(tex) {
spr.rotate(rand() % 360);
rotation_speed = 10.f * ((rand() % 10) - 5);
spr.setOrigin(tex.getSize().x / 2.0f, tex.getSize().y / 2.0f);
collision_circle.setPosition(position);
collision_circle.setRadius(tex.getSize().x / 2.0f);
collision_circle.setOrigin(spr.getOrigin());
collision_circle.setFillColor(sf::Color(50, 50, 255, 100));
}
Asteroid::Asteroid(sf::Texture& tex, sf::Vector2f in_position, sf::Vector2f in_velocity) : Entity(tex) {
spr.rotate(rand() % 360);
rotation_speed = 10.f* ((rand() % 10) - 5);
spr.setOrigin(tex.getSize().x / 2.0f, tex.getSize().y / 2.0f);
collision_circle.setPosition(position);
collision_circle.setRadius(tex.getSize().x / 2.0f);
collision_circle.setOrigin(spr.getOrigin());
collision_circle.setFillColor(sf::Color(50, 50, 255, 100));
set_position( in_position);
velocity = in_velocity;
}
void Asteroid::update(float dt) {
Entity::update(dt);
collision_circle.setPosition(position);
spr.rotate(rotation_speed * dt);
}
void Asteroid::set_scale(float scale) {
spr.setScale(scale, scale);
collision_circle.setScale(scale, scale);
rotation_speed = rotation_speed /(scale * scale);
}