2dkg/2dkg_zad5/2dgk_zad5/KDrawable.h
2022-01-20 08:52:14 +01:00

29 lines
645 B
C++

#pragma once
#include <atomic>
#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<int> IdCounter;
protected:
KVector2D Position{ 0.f, 0.f };
private:
const KTexture& Texture;
SDL_Rect* TileClip;
const SDL_RendererFlip Flip;
};
}