#pragma once #include #include "KTexture.h" #include "KVector2d.h" namespace KapitanGame { class KCamera; class KDrawable { public: KDrawable(const KVector2D& position, const KTexture& texture, SDL_Rect* tileClip, SDL_RendererFlip flip = SDL_FLIP_NONE); virtual ~KDrawable() = default; void Render(SDL_Renderer* renderer, const KCamera& camera, float parallaxFactor = 1.f) const; [[nodiscard]] KVector2D GetPosition() const; const int Id; static std::atomic IdCounter; protected: KVector2D Position{ 0.f, 0.f }; private: const KTexture& Texture; SDL_Rect* TileClip; const SDL_RendererFlip Flip; }; }