fork download
  1. #include <SFML/Graphics.hpp>
  2. #include <cstdlib>
  3. #include <vector>
  4.  
  5. using namespace sf;
  6.  
  7. class PlayerShot
  8. {
  9. Sprite sprite;
  10. FloatRect rect;
  11. Clock clock;
  12.  
  13. PlayerShot(Texture &image, FloatRect source)
  14. {
  15. sprite.setTexture(image);
  16.  
  17. rect = FloatRect( source.left + source.width / 2, source.top - 5, 92, 160);
  18. sprite.setPosition(rect.left, rect.top);
  19. sprite.scale(0.5, 0.5);
  20. sprite.setColor(Color::Yellow);
  21. }
  22.  
  23. void update(float time)
  24. {
  25. rect.top -= 0.5*time;
  26. sprite.setPosition(rect.left, rect.top);
  27. }
  28. };
  29.  
  30. class Player
  31. {
  32. public:
  33. Sprite sprite;
  34. FloatRect rect;
  35. Clock clock;
  36. std::vector<PlayerShot> shots;
  37. Texture shotTexture;
  38.  
  39. Player(Texture &image)
  40. {
  41. sprite.setTexture(image);
  42. rect = FloatRect((VideoMode::getDesktopMode().width - 92) / 2, VideoMode::getDesktopMode().height - 200, 92, 160);
  43. sprite.setPosition(rect.left, rect.top);
  44. sprite.scale(0.5, 0.5);
  45. sprite.setColor(Color::Green);
  46. shotTexture.loadFromFile("C:/data/2.png");
  47. }
  48.  
  49. void update(float time)
  50. {
  51. if ((Keyboard::isKeyPressed(Keyboard::A) || Keyboard::isKeyPressed(Keyboard::Left)) && rect.left > 0)
  52. rect.left -= 0.1*time;
  53. if ((Keyboard::isKeyPressed(Keyboard::D) || Keyboard::isKeyPressed(Keyboard::Right)) && rect.left < VideoMode::getDesktopMode().width-92)
  54. rect.left += 0.1*time;
  55. sprite.setPosition(rect.left, rect.top);
  56. if (clock.getElapsedTime().asSeconds() >= 1)
  57. {
  58. shot();
  59. clock.restart();
  60. }
  61. }
  62. private:
  63. void shot()
  64. {
  65. rect.top -= 5;
  66. //shots.push_back(PlayerShot(shotTexture, rect));
  67. }
  68. };
  69.  
  70. class Enemy
  71. {
  72. public:
  73. float dx = rand()%VideoMode::getDesktopMode().width, dy=0;
  74. Sprite sprite;
  75. FloatRect rect;
  76. Clock clock;
  77.  
  78. Enemy(Texture &image)
  79. {
  80. sprite.setTexture(image);
  81. rect = FloatRect(rand() % VideoMode::getDesktopMode().width, 0, 18, 32);
  82. sprite.setPosition(rect.left, rect.top);
  83. sprite.scale(0.2, 0.2);
  84. sprite.setColor(Color::Red);
  85. }
  86.  
  87. void update(float time)
  88. {
  89. rect.top += 0.02*time;
  90. sprite.setPosition(rect.left,rect.top);
  91. if (clock.getElapsedTime().asSeconds() >= 1)
  92. {
  93. shot();
  94. clock.restart();
  95. }
  96. }
  97.  
  98. private:
  99. void shot()
  100. {
  101.  
  102. }
  103. };
  104.  
  105. int main()
  106. {
  107. RenderWindow window(VideoMode::getDesktopMode() , "Test",Style::Fullscreen);
  108. Texture t;
  109. t.loadFromFile("C:/data/1.png");
  110. Player player(t);
  111.  
  112. Clock clock;
  113. while (window.isOpen())
  114. {
  115. float time = clock.getElapsedTime().asMicroseconds();
  116. clock.restart();
  117. time /= 70;
  118. Event event;
  119. while (window.pollEvent(event))
  120. {
  121. if (event.type == Event::Closed)
  122. window.close();
  123. }
  124. if (Keyboard::isKeyPressed(Keyboard::Escape))
  125. window.close();
  126. player.update(time);
  127. window.clear();
  128. window.draw(player.sprite);
  129. window.display();
  130.  
  131. }
  132. return 0;
  133. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:1:29: fatal error: SFML/Graphics.hpp: No such file or directory
 #include <SFML/Graphics.hpp>
                             ^
compilation terminated.
stdout
Standard output is empty