#include #include #include #include int main() { srand ( time ( NULL ) ); sf::RenderWindow window(sf::VideoMode(800, 600), "Krieg der Klötze" ); window.setMouseCursorVisible ( false ); std::list Schussliste; std::list::iterator i; sf::RectangleShape Ziel ( sf::Vector2f ( 50, 50 ) ); Ziel.setFillColor ( sf::Color::Blue ); sf::RectangleShape Spieler ( sf::Vector2f ( 50, 50 ) ); Spieler.setFillColor ( sf::Color::Green ); Spieler.setPosition ( 0, 550 ); sf::RectangleShape *Schuss_Temp = 0; bool Schussaktiv = false; while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) window.close(); } if ( sf::Keyboard::isKeyPressed ( sf::Keyboard::Space ) && Schussaktiv == false) { Schussaktiv = true; Schuss_Temp = new sf::RectangleShape ( sf::Vector2f ( 4, 15 ) ); Schuss_Temp->setPosition( Spieler.getPosition ().x + 25, 550 ); Schuss_Temp->setFillColor ( sf::Color::Red ); Schussliste.push_back ( Schuss_Temp ); } if ( event.type == sf::Event::KeyReleased ) { if ( event.key.code == sf::Keyboard::Space ) { Schussaktiv = false; } } if ( sf::Keyboard::isKeyPressed ( sf::Keyboard::Right ) && Spieler.getPosition ().x <= 750 ) { Spieler.move ( 2, 0 ); } if ( sf::Keyboard::isKeyPressed ( sf::Keyboard::Left ) && Spieler.getPosition ().x >= 0 ) { Spieler.move ( -2, 0 ); } if ( Schussliste.begin () != Schussliste.end () ) { for ( i = Schussliste.begin (); i != Schussliste.end (); ++i ) { if ( (*i)->getPosition ().x >= Ziel.getPosition ().x && (*i)->getPosition ().x <= Ziel.getPosition ().x + 50 && (*i)->getPosition ().y >= Ziel.getPosition ().y && (*i)->getPosition ().y <= Ziel.getPosition ().y + 50 ) { delete *i; Schussliste.erase (i++); Ziel.setPosition ( rand () % 775 + 1, 0 ); } } } if ( Schussliste.begin () != Schussliste.end () ) { for ( i = Schussliste.begin (); i != Schussliste.end (); ++i ) { if ( (*i)->getPosition ().y <= 0 ) { delete *i; Schussliste.erase (i++); } } } window.clear (); window.draw ( Ziel ); if ( Schussliste.begin () != Schussliste.end () ) { for ( i = Schussliste.begin (); i != Schussliste.end (); i++ ) { window.draw((**i)); (*i)->move ( 0, -1 ); } } window.draw ( Spieler ); window.display (); } return 0; }