29 lines
		
	
	
		
			645 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			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;
 | 
						|
	};
 | 
						|
}
 | 
						|
 |