You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
project-kyoku/src/impl/sfml/classicmode/classicspritesfml.cpp

67 lines
1.6 KiB
C++

#include "classicspritesfml.h"
ClassicSpriteSFML::ClassicSpriteSFML(sf::RenderTarget * const render_target,
const sf::RectangleShape& shape) :
_prototype(shape),
_shape(shape),
_trail(shape),
_render_target(render_target)
{}
void ClassicSpriteSFML::reset()
{
_shape.setPosition(0, 0);
_trail.setPosition(0, 0);
_shape = _prototype;
_trail = _prototype;
}
void ClassicSpriteSFML::setPosition(const kku::Point& position)
{
_shape.setPosition(position.x, position.y);
}
void ClassicSpriteSFML::setTrailPosition(const kku::Point &position)
{
_trail.setPosition(position.x, position.y);
}
kku::Point ClassicSpriteSFML::getPosition() const
{
return kku::Point{ _shape.getPosition().x, _shape.getPosition().y };
}
kku::Point ClassicSpriteSFML::getTrailPosition() const
{
return kku::Point{ _trail.getPosition().x, _trail.getPosition().y };
}
void ClassicSpriteSFML::setColor(const kku::Color& color)
{
_shape.setFillColor(sf::Color{ color.red, color.green, color.blue, color.alpha });
}
void ClassicSpriteSFML::setTrailColor(const kku::Color& color)
{
_trail.setFillColor(sf::Color{ color.red, color.green, color.blue, color.alpha });
}
kku::Color ClassicSpriteSFML::getColor() const
{
const auto color = _shape.getFillColor();
return kku::Color{ color.r, color.g, color.b, color.a };
}
kku::Color ClassicSpriteSFML::getTrailColor() const
{
const auto color = _trail.getFillColor();
return kku::Color{ color.r, color.g, color.b, color.a };
}
void ClassicSpriteSFML::display() const
{
_render_target->draw(_shape);
_render_target->draw(_trail);
}