-
Notifications
You must be signed in to change notification settings - Fork 7
/
Vehicle.hpp
114 lines (98 loc) · 2.64 KB
/
Vehicle.hpp
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/******************************************************************************
* @file Vehicle.hpp
* @author Andrés Gavín Murillo, 716358
* @author Rubén Rodríguez Esteban, 737215
* @date Mayo 2020
* @coms Videojuegos - OutRun
******************************************************************************/
#ifndef OUTRUN_VEHICLE_HPP
#define OUTRUN_VEHICLE_HPP
#include <SFML/Graphics.hpp>
#include <vector>
#include "Menu.hpp"
#define XINC 0.033f // x increment
#define ACC_INC 0.01f
/**
* La información del vehículo está compuesta por su velocidad, aceleración, posición x, conjunto de texturas del
* vehículo, sprite actual y acción actual y dirección actual.
*/
class Vehicle {
public:
enum Elevation {
UP,
FLAT,
DOWN
};
enum Action {
NONE,
BRAKE,
ACCELERATE,
CRASH,
BOOT
};
enum Direction {
RIGHT,
TURNLEFT,
TURNRIGHT
};
protected:
const float maxSpeed, halfMaxSpeed, scale;
const int maxCounterToChange;
float speed;
float posX, posY, previousY, minScreenX, maxScreenX;
std::vector<sf::Texture> textures;
int current_code_image;
int counter_code_image; // Counter to change actual_code_image
public:
/**
* Inicializa el vehículo.
* @param maxSpeed
* @param scale
* @param maxCounterToChange
* @param speed
* @param posX
* @param posY
* @param previousY
* @param minScreenX
* @param maxScreenX
* @param vehicle
* @param numTextures
* @param currentCodeImage
* @param counterCodeImage
*/
Vehicle(float maxSpeed, float scale, int maxCounterToChange, float speed, float posX, float posY, float previousY,
float minScreenX, float maxScreenX, const std::string &vehicle, int numTextures, int currentCodeImage,
int counterCodeImage);
/**
* Establece la posición actual del vehículo.
* @param pX
* @param pY
*/
void setPosition(float pX, float pY);
/**
* Devuelve la posición actual X.
* @return
*/
float getPosX() const;
/**
* Devuelve la posición actual Y.
* @return
*/
float getPosY() const;
/**
* Devuelve la coordenada mínima de pantalla en X que ocupa el vehículo.
* @return
*/
float getMinScreenX() const;
/**
* Devuelve la coordenada máxima de pantalla en X que ocupa el vehículo.
* @return
*/
float getMaxScreenX() const;
/**
* Devuelve la aceleración del vehículo.
* @return
*/
float getAcceleration() const;
};
#endif //OUTRUN_VEHICLE_HPP