forked from University/epr24pr42-ojanssen2
51 lines
1.8 KiB
C++
51 lines
1.8 KiB
C++
#ifndef POSITION_H
|
|
#define POSITION_H
|
|
|
|
namespace game
|
|
{
|
|
/// Ein Vector aus zwei zahlen.
|
|
/// Kann eine Position oder eine Differenz zwischen zwei Positionen darstellen.
|
|
struct Vector2d
|
|
{
|
|
// struct -> members public by default
|
|
// Die beiden Variablen des Vectors
|
|
int x;
|
|
int y;
|
|
|
|
/// Ein Vector aus zwei zahlen.
|
|
/// Kann eine Position oder eine Differenz zwischen zwei Positionen darstellen.
|
|
/// @param x Die 'X'-Koordinate
|
|
/// @param y Die 'Y'-Koordinate
|
|
Vector2d(int x, int y);
|
|
|
|
/// Aktualisiere die Werte des Vectors
|
|
/// @param x Die neue 'X'-Koordinate
|
|
/// @param y Die neue 'Y'-Koordinate
|
|
void update(const int& x, const int& y);
|
|
|
|
/// Verschiebe den X Wert des Vektors um eine Anzahl
|
|
/// @param amount Die zu verschiebene Anzahl
|
|
void change_x(const int& amount);
|
|
|
|
/// Verschiebe den Y Wert des Vektors um eine Anzhal
|
|
/// @param amount Die zu verschiebene Anzahl
|
|
void change_y(const int& amount);
|
|
|
|
/// Kriege einen normalisierten Vektor zurück
|
|
/// @returns Den aktuellen Vektor als normalisierter Vektor
|
|
Vector2d normalize();
|
|
|
|
/// Kontrolliere, ob ein Vektor einem anderen Enspricht
|
|
/// @param position Die Position mit der verglichen werden soll
|
|
/// @returns Ob die Position die gleiche ist
|
|
bool eq(const Vector2d& position) const;
|
|
|
|
/// Kriege einen Vektor, der mit den gegebenen Werten verschoben worden ist
|
|
/// @param diff_x Die Verschiebung auf der X-Achse
|
|
/// @param diff_y Die Verschiebung auf der Y-Achse
|
|
/// @returns Den berrechneten Vektor
|
|
Vector2d get_new_updated(const int& diff_x, const int& diff_y) const;
|
|
};
|
|
} // game
|
|
|
|
#endif //POSITION_H
|