1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #include "Circle.hpp"
- Circle::Circle(sf::Color color, float scale): _size(10)
- {
- _arc.resize(100);
- for(unsigned i = 0; i < 100; ++i)
- {
- _arc[i].setColor(color);
- _arc[i].setRotation(3.6f * i);
- _arc[i].setScale(scale, scale);
- }
- }
- Circle::~Circle()
- {
- _arc.clear();
- }
- void Circle::setTexture(sf::Texture& texture)
- {
- for(unsigned i = 0; i < 100; ++i)
- {
- _arc[i].setOrigin(texture.getSize().x / 2.f, 205.f);
- _arc[i].setTexture(texture);
- }
- }
- void Circle::setPosition(sf::Vector2f position)
- {
- for(unsigned i = 0; i < 100; ++i)
- _arc[i].setPosition(position);
- }
- void Circle::setPosition(float x, float y)
- {
- setPosition(sf::Vector2f(x, y));
- }
- void Circle::setRotation(float rotation)
- {
- for(unsigned i = 0; i < 100; ++i)
- _arc[i].setRotation(3.6f * i + rotation);
- }
- void Circle::rotate(float rotation)
- {
- for(unsigned i = 0; i < 100; ++i)
- _arc[i].rotate(rotation);
- }
- void Circle::setSize(unsigned size)
- {
- if(size <= 100)
- _size = size;
- }
- void Circle::show()
- {
- _elapsedTime = sf::Time::Zero;
- }
- void Circle::update(sf::Time delta)
- {
- _elapsedTime += delta;
- float seconds = _elapsedTime.asSeconds();
- if(seconds >= 2.75f && seconds < 3.f)
- {
- sf::Color color = _arc[0].getColor();
- color.a = int((3.f - _elapsedTime.asSeconds()) * 255 * 4);
- for(unsigned i = 0; i < _size; ++i)
- _arc[i].setColor(color);
- }
- else if(seconds >= 3.f)
- {
- sf::Color color = _arc[0].getColor();
- color.a = 255;
- for(unsigned i = 0; i < _size; ++i)
- _arc[i].setColor(color);
- }
- }
- void Circle::draw(sf::RenderTarget& target, sf::RenderStates states) const
- {
- if(_elapsedTime.asSeconds() >= 3.f)
- return;
- for(unsigned i = 0; i < _size; ++i)
- target.draw(_arc[i]);
- }
|