38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
#include "../headers/Background.h"
|
|
#include <iostream>
|
|
|
|
//logika robimy dwa spraity i sie przesuwaja po sobie i resetuja jak wyjda poza ekran
|
|
|
|
Background::Background(const std::string& texturePath, float speed)
|
|
: speed(speed)
|
|
{
|
|
if (!texture.loadFromFile(texturePath)) {
|
|
std::cerr << "Tlo sie nie zaladowalo!!! " << texturePath << "\n";
|
|
}
|
|
|
|
sprite1.setTexture(texture);
|
|
sprite2.setTexture(texture);
|
|
|
|
sprite1.setPosition(0, 0);
|
|
sprite2.setPosition(0, -texture.getSize().y);
|
|
}
|
|
|
|
void Background::update() {
|
|
// Przesuwanie tła
|
|
sprite1.move(0, speed);
|
|
sprite2.move(0, speed);
|
|
|
|
// Resetowanie pozycji tła
|
|
if (sprite1.getPosition().y >= sprite1.getTexture()->getSize().y) {
|
|
sprite1.setPosition(0, sprite2.getPosition().y - sprite2.getTexture()->getSize().y);
|
|
}
|
|
if (sprite2.getPosition().y >= sprite2.getTexture()->getSize().y) {
|
|
sprite2.setPosition(0, sprite1.getPosition().y - sprite1.getTexture()->getSize().y);
|
|
}
|
|
}
|
|
|
|
void Background::draw(sf::RenderWindow& window) {
|
|
window.draw(sprite1);
|
|
window.draw(sprite2);
|
|
}
|