#include "PyTexture.h" PyTexture::PyTexture(std::string filename, int sprite_w, int sprite_h) : source(filename), sprite_width(sprite_w), sprite_height(sprite_h) { texture = sf::Texture(); texture.loadFromFile(source); auto size = texture.getSize(); sheet_width = size.x; sheet_height = size.y; if (sheet_width % sprite_width != 0 || sheet_height % sprite_height != 0) { std::cout << "Warning: Texture `" << source << "` is not an even number of sprite widths or heights across." << std::endl << "Sprite size given was " << sprite_w << "x" << sprite_h << "px but the file has a resolution of " << sheet_width << "x" << sheet_height << "px." << std::endl; } } sf::Sprite PyTexture::sprite(int index, sf::Vector2f pos, sf::Vector2f s) { int tx = index % sprite_width, ty = index / sprite_height; auto ir = sf::IntRect(tx * sprite_width, ty * sprite_height, sprite_width, sprite_height); auto sprite = sf::Sprite(texture, ir); sprite.setPosition(pos); sprite.setScale(s); return sprite; }