2020-11-21 19:57:40 +00:00
|
|
|
#ifndef SDLPP_HPP_RECT_COLIDER
|
|
|
|
#define SDLPP_HPP_RECT_COLIDER
|
|
|
|
|
|
|
|
#include "sdlpp_common.hpp"
|
|
|
|
#include "sdlpp_collision.hpp"
|
|
|
|
|
|
|
|
#include <limits>
|
|
|
|
|
|
|
|
namespace SDLPP {
|
2020-11-22 22:37:55 +00:00
|
|
|
class SDLPPSCOPE RectColider : public CollisionPolygon {
|
2020-11-21 19:57:40 +00:00
|
|
|
public:
|
|
|
|
RectColider( double x, double y, double w, double h );
|
|
|
|
virtual ~RectColider() {}
|
|
|
|
virtual bool colidesWith( const CollisionPolygon &other ) const override;
|
|
|
|
virtual bool isCircle() const override;
|
|
|
|
virtual int topmost() const override;
|
|
|
|
virtual int bottommost() const override;
|
|
|
|
virtual int leftmost() const override;
|
|
|
|
virtual int rightmost() const override;
|
|
|
|
virtual void updateCollision( int x, int y, int w, int h ) override;
|
|
|
|
virtual void
|
|
|
|
render( Renderer &renderer,
|
|
|
|
const std::tuple< int, int, int, int > &color ) override;
|
|
|
|
virtual void render( Renderer &renderer ) override;
|
2020-12-18 15:02:02 +00:00
|
|
|
virtual std::shared_ptr<CollisionPolygon> copySelf() override;
|
2020-11-21 19:57:40 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
SDL_Rect getRect();
|
|
|
|
|
|
|
|
double w_;
|
|
|
|
double h_;
|
|
|
|
int pixel_w;
|
|
|
|
int pixel_h;
|
|
|
|
};
|
|
|
|
} // end of namespace SDLPP
|
|
|
|
#endif
|