#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