From 0c4f2482c77599ae1b6ab22e06b876733e636859 Mon Sep 17 00:00:00 2001 From: zv0n Date: Tue, 25 May 2021 22:05:00 +0200 Subject: [PATCH] SDLPP: Allow changing coliders' position Requires `updateSizeAndPosition` to be run on the parent container --- sdlpp/sdlpp_collision.cpp | 8 ++++++++ sdlpp/sdlpp_collision.hpp | 2 ++ 2 files changed, 10 insertions(+) diff --git a/sdlpp/sdlpp_collision.cpp b/sdlpp/sdlpp_collision.cpp index 3ab0d42..dc211a4 100644 --- a/sdlpp/sdlpp_collision.cpp +++ b/sdlpp/sdlpp_collision.cpp @@ -30,6 +30,14 @@ void CollisionPolygon::updateCollision( int x, int y, int w, int h, position = Vec2D< int >( original.getX() * w + x, original.getY() * h + y ); } +void CollisionPolygon::setPos(const Vec2D &pos) { + original = pos; +} + +void CollisionPolygon::setPos(double x, double y) { + setPos({x, y}); +} + int CollisionPolygon::getX() const { return position.getX(); } diff --git a/sdlpp/sdlpp_collision.hpp b/sdlpp/sdlpp_collision.hpp index c330a04..29565ad 100644 --- a/sdlpp/sdlpp_collision.hpp +++ b/sdlpp/sdlpp_collision.hpp @@ -30,6 +30,8 @@ public: const SDL_Color &outline_color ) = 0; virtual void render( Renderer &renderer, const SDL_Color &color ) = 0; virtual void render( Renderer &renderer ) = 0; + void setPos(const Vec2D &pos); + void setPos(double x, double y); int getX() const; int getY() const; void setColor( const std::string &color );