Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.26 KB | None | 0 0
  1. #include <SFML/Graphics.hpp>
  2. #include <iostream>
  3. #include <math.h>
  4. #include <stdlib.h>
  5. #include <SFML/Audio.hpp>
  6. #include <time.h>
  7. #include <vector>
  8.  
  9. using namespace sf;
  10. using namespace std;
  11.  
  12. int main()
  13. {
  14. srand(time(NULL));
  15. sf::RenderWindow window(sf::VideoMode(600, 600), "GINSENG STRIP 2002");
  16. window.setFramerateLimit(60);
  17. // sf::RectangleShape R1; //rocketship
  18. //
  19. // Texture t1; //texture for rocketship
  20. // t1.loadFromFile("rocketship55.png"); //picture for rocketship
  21. //
  22. // //properties of rocketship
  23. // R1.setSize(Vector2f(60,80));
  24. // R1.setTexture(&t1);
  25. // R1.setPosition(55,66);
  26.  
  27. //loading background
  28. Texture Background;
  29. if (!Background.loadFromFile("background1.jpg"));
  30.  
  31. Sprite background(Background);
  32.  
  33. //RocketShip Sprite
  34. Sprite RocketSpriteSheet;
  35. Texture t2;
  36. t2.loadFromFile("thisBOY.png"); //
  37. RocketSpriteSheet.setTexture(t2);//sprite sheet
  38. RocketSpriteSheet.setTextureRect(IntRect(37,87,46,47));
  39. RocketSpriteSheet.setPosition(400,500);
  40.  
  41. //random number generator
  42. int v1;
  43. int v2;
  44. //int rand(void);
  45.  
  46. v1 = rand() % 800;
  47. v2 = rand() % 600;
  48.  
  49. vector<int> m1;
  50. vector<int> m2;
  51.  
  52. // vector<int> v1;
  53. // vector<int> v2;
  54.  
  55.  
  56.  
  57.  
  58. //Asteroid Sprite
  59. Texture t3;
  60. t3.loadFromFile("thisBOY.png");
  61. // for (int i=0; i<20; i++){
  62. Sprite Asteroid;
  63. vector<Sprite> As;
  64.  
  65. Asteroid.setTexture(t3);
  66. Asteroid.setTextureRect(IntRect(0,241,60,58));
  67. Asteroid.setPosition(v1,v2);
  68. //}
  69.  
  70.  
  71. //game loop
  72. Clock c, explosionclock;
  73. Time t , explosiontime;
  74. bool hit = false;
  75.  
  76. while (window.isOpen())
  77. {
  78. t = c.getElapsedTime();
  79. explosiontime = explosionclock.getElapsedTime();
  80. sf::Event event;
  81. while (window.pollEvent(event))
  82. {
  83. if (event.type == sf::Event::Closed)
  84. window.close();
  85. }
  86.  
  87. if (t.asSeconds() > 0.1) { //makes a new asteroid every .4 seconds
  88. c.restart();
  89. As.push_back(Sprite());
  90. As.back().setTexture(t3);
  91. As.back().setTextureRect(IntRect(0,241,60,58));
  92. m1.push_back(rand() % 5 + 1 ); //between -5 and 5
  93. m2.push_back(rand() % 5 + 1 );
  94. As.back().setPosition(-200,-900);
  95. }
  96. //asteroid movement
  97.  
  98. for (int i=0; i<As.size(); i++){
  99. As[i].move(m1[i],m2[i]);
  100. }
  101. //cout<<As.size()<<endl;
  102.  
  103. if (Keyboard::isKeyPressed(Keyboard::Left)){
  104. RocketSpriteSheet.move(-4,0);
  105. RocketSpriteSheet.setTextureRect(IntRect(1,40,34,48));
  106. }
  107.  
  108. if (Keyboard::isKeyPressed(Keyboard::Right)){
  109. RocketSpriteSheet.move(4,0);
  110. RocketSpriteSheet.setTextureRect(IntRect(85,41,35,48));
  111. }
  112.  
  113. if (Keyboard::isKeyPressed(Keyboard::Up)){
  114. RocketSpriteSheet.move(0,-4);
  115. RocketSpriteSheet.setTextureRect(IntRect(37,40,46,47));
  116. }
  117.  
  118. if (Keyboard::isKeyPressed(Keyboard::Down)){
  119. RocketSpriteSheet.move(0,4);
  120. RocketSpriteSheet.setTextureRect(IntRect(37,87,46,47));
  121. }
  122. for (int i=0; i<As.size(); i++){ //erasing asteroids
  123. if (As[i].getPosition().y > 700) {
  124. As.erase(As.begin()+i);
  125. m1.erase(m1.begin()+i);
  126. m2.erase(m2.begin()+i);
  127. }
  128. }
  129.  
  130.  
  131.  
  132.  
  133. Font font;
  134. if (!font.loadFromFile("Starjout.ttf")){}
  135.  
  136. Text text;
  137. text.setFont(font);
  138. text.setString("Ginseng Strip 2002");
  139. text.setCharacterSize(40);
  140. text.setColor(Color::White);
  141. text.setStyle(Text::Bold);
  142.  
  143.  
  144. //cout<<Asteroid.getGlobalBounds().intersects(RocketSpriteSheet.getGlobalBounds())<<endl;;
  145.  
  146. for (int i=0; i<As.size(); i++){
  147. if (As[i].getGlobalBounds().intersects(RocketSpriteSheet.getGlobalBounds())){
  148. hit = true;
  149. explosionclock.restart();
  150. }
  151. }
  152. if (hit == true) {
  153. cout<<explosiontime.asMilliseconds()%1000/250<<endl;
  154. if (explosiontime.asMilliseconds()%1000/250 == 0)
  155. RocketSpriteSheet.setTextureRect(IntRect(20,160,25,20));
  156. else if (explosiontime.asMilliseconds()%1000/250 == 1)
  157. RocketSpriteSheet.setTextureRect(IntRect(45,160,24,24));
  158. else if (explosiontime.asMilliseconds()%1000/250 == 2)
  159. RocketSpriteSheet.setTextureRect(IntRect(0,195,48,48));
  160. else if (explosiontime.asMilliseconds()%1000/250 == 3)
  161. RocketSpriteSheet.setTextureRect(IntRect(53,194,60,60));
  162. if (explosiontime.asMilliseconds() > 2000) {
  163. //quit game
  164.  
  165. }
  166. }
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173. window.clear(Color::White);
  174. window.draw(background);
  175. window.draw(text);
  176. window.draw(RocketSpriteSheet);
  177. for (int i=0; i<As.size(); i++){
  178. window.draw(As[i]);
  179. }
  180. //window.draw(R1);
  181. window.display();
  182. }
  183.  
  184. return 0;
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement