Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include <SFML/Graphics.hpp>
- #include <iostream>
- int pos_x,pos_y;
- bool zakrent=true;
- int ilosc_tab=100;
- int wielekosc_pierwszej_lini=10;
- int resetx=0;
- bool kolizja_prawa,kolizja_lewa,kolizja_gorna,kolizja_dolna;
- int main()
- {
- sf::RenderWindow window(sf::VideoMode(1920, 1080, 32), "okno");
- window.setFramerateLimit(60);
- //Tlo
- sf::RectangleShape tlo(sf::Vector2f(1920,1080));
- tlo.setFillColor(sf::Color::Blue);
- //Linie
- sf::RectangleShape linia_gora(sf::Vector2f(1920,1));
- linia_gora.setFillColor(sf::Color::Red);
- sf::RectangleShape linia_dol(sf::Vector2f(1920,1));
- linia_dol.setFillColor(sf::Color::Red);
- linia_dol.setPosition(0,1080);
- sf::RectangleShape linia_prawo(sf::Vector2f(1,1080));
- linia_prawo.setFillColor(sf::Color::Red);
- linia_prawo.setPosition(1920,0);
- sf::RectangleShape linia_lewo(sf::Vector2f(1,1080));
- linia_lewo.setFillColor(sf::Color::Red);
- //Postać
- sf::RectangleShape postac(sf::Vector2f(50,50));
- postac.setFillColor(sf::Color::Red);
- postac.setOrigin(postac.getGlobalBounds().width/2 , postac.getGlobalBounds().height/2);
- postac.setPosition(960,540);
- std::vector<sf::RectangleShape> squares(ilosc_tab, sf::RectangleShape(sf::Vector2f(20, 20)));
- sf::Vector2f startpos(400, 200);
- for (auto& square : squares)
- {
- square.setOrigin(square.getGlobalBounds().width / 2, square.getGlobalBounds().height / 2);
- square.setFillColor(sf::Color::Green);
- square.setPosition(startpos);
- resetx++;
- if(resetx==wielekosc_pierwszej_lini)
- {
- zakrent=false;
- }
- else
- {
- zakrent=true;
- }
- if(zakrent==true)
- {
- startpos.x+=30;
- }
- else
- {
- startpos.x=squares[0].getPosition().x;
- if(resetx==wielekosc_pierwszej_lini)
- {
- startpos.y+=30;
- resetx=0;
- }
- }
- }
- while (window.isOpen())
- {
- //kolizje
- if(sf::Keyboard::isKeyPressed(sf::Keyboard::W))
- {
- if(postac.getGlobalBounds().intersects(linia_gora.getGlobalBounds())||postac.getGlobalBounds().intersects(squares[i].getGlobalBounds()))
- {
- kolizja_gorna=true;
- std::cout<<"kolizja gorna!!"<<std::endl;
- }
- else
- {
- kolizja_gorna=false;
- postac.move(0,-5);
- }
- }
- if(sf::Keyboard::isKeyPressed(sf::Keyboard::S))
- {
- if(postac.getGlobalBounds().intersects(linia_dol.getGlobalBounds())||postac.getGlobalBounds().intersects(squares[i].getGlobalBounds()))
- {
- kolizja_dolna=true;
- std::cout<<"kolizja dolna!!"<<std::endl;
- }
- else
- {
- kolizja_dolna=false;
- postac.move(0,5);
- }
- }
- if(sf::Keyboard::isKeyPressed(sf::Keyboard::A))
- {
- if(postac.getGlobalBounds().intersects(linia_lewo.getGlobalBounds())||postac.getGlobalBounds().intersects(squares[i].getGlobalBounds()))
- {
- kolizja_lewa=true;
- std::cout<<"kolizja prawa!!"<<std::endl;
- }
- else
- {
- kolizja_lewa=false;
- postac.move(-5,0);
- }
- }
- if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))
- {
- if(postac.getGlobalBounds().intersects(linia_prawo.getGlobalBounds())||postac.getGlobalBounds().intersects(squares[i].getGlobalBounds()))
- {
- kolizja_prawa=true;
- std::cout<<"kolizja lewa!!"<<std::endl;
- }
- else
- {
- kolizja_prawa=false;
- postac.move(5,0);
- }
- }
- sf::Event event;
- while (window.pollEvent(event))
- {
- if (event.type == sf::Event::Closed)
- {
- window.close();
- }
- if (event.type == sf::Event::KeyPressed)
- {
- if (event.key.code == sf::Keyboard::Escape)
- {
- window.close();
- }
- }
- }
- window.clear(sf::Color::Black);
- window.draw(tlo);
- for (auto& square : squares)
- {
- window.draw(square);
- }
- window.draw(linia_dol);
- window.draw(linia_gora);
- window.draw(linia_prawo);
- window.draw(linia_lewo);
- window.draw(postac);
- window.display();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement