Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SFML/Graphics.hpp>
- #include <iostream>
- #include <math.h>
- #include <stdlib.h>
- #include <SFML/Audio.hpp>
- #include <time.h>
- #include <vector>
- using namespace sf;
- using namespace std;
- int main()
- {
- srand(time(NULL));
- sf::RenderWindow window(sf::VideoMode(600, 600), "GINSENG STRIP 2002");
- window.setFramerateLimit(60);
- // sf::RectangleShape R1; //rocketship
- //
- // Texture t1; //texture for rocketship
- // t1.loadFromFile("rocketship55.png"); //picture for rocketship
- //
- // //properties of rocketship
- // R1.setSize(Vector2f(60,80));
- // R1.setTexture(&t1);
- // R1.setPosition(55,66);
- //loading background
- Texture Background;
- if (!Background.loadFromFile("background1.jpg"));
- Sprite background(Background);
- //RocketShip Sprite
- Sprite RocketSpriteSheet;
- Texture t2;
- t2.loadFromFile("thisBOY.png"); //
- RocketSpriteSheet.setTexture(t2);//sprite sheet
- RocketSpriteSheet.setTextureRect(IntRect(37,87,46,47));
- RocketSpriteSheet.setPosition(400,500);
- //random number generator
- int v1;
- int v2;
- //int rand(void);
- v1 = rand() % 800;
- v2 = rand() % 600;
- vector<int> m1;
- vector<int> m2;
- // vector<int> v1;
- // vector<int> v2;
- //Asteroid Sprite
- Texture t3;
- t3.loadFromFile("thisBOY.png");
- // for (int i=0; i<20; i++){
- Sprite Asteroid;
- vector<Sprite> As;
- Asteroid.setTexture(t3);
- Asteroid.setTextureRect(IntRect(0,241,60,58));
- Asteroid.setPosition(v1,v2);
- //}
- //game loop
- Clock c, explosionclock;
- Time t , explosiontime;
- bool hit = false;
- while (window.isOpen())
- {
- t = c.getElapsedTime();
- explosiontime = explosionclock.getElapsedTime();
- sf::Event event;
- while (window.pollEvent(event))
- {
- if (event.type == sf::Event::Closed)
- window.close();
- }
- if (t.asSeconds() > 0.1) { //makes a new asteroid every .4 seconds
- c.restart();
- As.push_back(Sprite());
- As.back().setTexture(t3);
- As.back().setTextureRect(IntRect(0,241,60,58));
- m1.push_back(rand() % 5 + 1 ); //between -5 and 5
- m2.push_back(rand() % 5 + 1 );
- As.back().setPosition(-200,-900);
- }
- //asteroid movement
- for (int i=0; i<As.size(); i++){
- As[i].move(m1[i],m2[i]);
- }
- //cout<<As.size()<<endl;
- if (Keyboard::isKeyPressed(Keyboard::Left)){
- RocketSpriteSheet.move(-4,0);
- RocketSpriteSheet.setTextureRect(IntRect(1,40,34,48));
- }
- if (Keyboard::isKeyPressed(Keyboard::Right)){
- RocketSpriteSheet.move(4,0);
- RocketSpriteSheet.setTextureRect(IntRect(85,41,35,48));
- }
- if (Keyboard::isKeyPressed(Keyboard::Up)){
- RocketSpriteSheet.move(0,-4);
- RocketSpriteSheet.setTextureRect(IntRect(37,40,46,47));
- }
- if (Keyboard::isKeyPressed(Keyboard::Down)){
- RocketSpriteSheet.move(0,4);
- RocketSpriteSheet.setTextureRect(IntRect(37,87,46,47));
- }
- for (int i=0; i<As.size(); i++){ //erasing asteroids
- if (As[i].getPosition().y > 700) {
- As.erase(As.begin()+i);
- m1.erase(m1.begin()+i);
- m2.erase(m2.begin()+i);
- }
- }
- Font font;
- if (!font.loadFromFile("Starjout.ttf")){}
- Text text;
- text.setFont(font);
- text.setString("Ginseng Strip 2002");
- text.setCharacterSize(40);
- text.setColor(Color::White);
- text.setStyle(Text::Bold);
- //cout<<Asteroid.getGlobalBounds().intersects(RocketSpriteSheet.getGlobalBounds())<<endl;;
- for (int i=0; i<As.size(); i++){
- if (As[i].getGlobalBounds().intersects(RocketSpriteSheet.getGlobalBounds())){
- hit = true;
- explosionclock.restart();
- }
- }
- if (hit == true) {
- cout<<explosiontime.asMilliseconds()%1000/250<<endl;
- if (explosiontime.asMilliseconds()%1000/250 == 0)
- RocketSpriteSheet.setTextureRect(IntRect(20,160,25,20));
- else if (explosiontime.asMilliseconds()%1000/250 == 1)
- RocketSpriteSheet.setTextureRect(IntRect(45,160,24,24));
- else if (explosiontime.asMilliseconds()%1000/250 == 2)
- RocketSpriteSheet.setTextureRect(IntRect(0,195,48,48));
- else if (explosiontime.asMilliseconds()%1000/250 == 3)
- RocketSpriteSheet.setTextureRect(IntRect(53,194,60,60));
- if (explosiontime.asMilliseconds() > 2000) {
- //quit game
- }
- }
- window.clear(Color::White);
- window.draw(background);
- window.draw(text);
- window.draw(RocketSpriteSheet);
- for (int i=0; i<As.size(); i++){
- window.draw(As[i]);
- }
- //window.draw(R1);
- window.display();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement