-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMovementComponent.h
More file actions
67 lines (48 loc) · 927 Bytes
/
MovementComponent.h
File metadata and controls
67 lines (48 loc) · 927 Bytes
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#pragma once
namespace MovementStates
{
enum State
{
Idle = 0,
Moving,
Left,
Right,
Up,
Down,
UpRight,
UpLeft,
DownRight,
DownLeft
};
}
enum VelocityTypes : unsigned int
{
Default = 0,
Angular,
Temporary
};
class MovementComponent
{
private:
//Variables:
sf::Sprite& sprite;
float pi;
float velocityMax[3];
float acceleration[3];
float deceleration[3];
sf::Vector2f velocity;
public:
//Constructors and Destructor:
MovementComponent(sf::Sprite& sprite, float velocity_max, float acceleration, float deceleration);
virtual ~MovementComponent();
//Accessors:
const float& getVelocityMax() const;
const sf::Vector2f& getVelocity() const;
//Functions:
const bool getState(const short unsigned state)const;
void stopVelocity();
void stopVelocityX();
void stopVelocityY();
void move(const float dir_x, const float dir_y, const float& dt);
void update(const float& dt);
};