Advertisement
Guest User

sfml

a guest
May 11th, 2019
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. #include "MinesweeperBoard.h"
  2. #include "MSSFMLView.h"
  3.  
  4.  
  5. MSSFMLView::MSSFMLView(MinesweeperBoard &sfml_board) : board(sfml_board)
  6. {
  7. }
  8.  
  9. void MSSFMLView::draw(sf::RenderWindow & window, int board_width, int board_height, int cel_len)
  10. {
  11.  
  12.  
  13.  
  14. sf::Music music;
  15. music.openFromFile("saper_music.ogg");
  16. // music.play();
  17. sf::Texture texture;
  18. if (!texture.loadFromFile("cosmos.png"))
  19. {
  20. std::cout << "error";
  21. }
  22. sf::Texture flag;
  23. if(!flag.loadFromFile("flaga.png"))
  24.  
  25. {
  26. std::cout << "flaga nie wczytuje sie" << std::endl;
  27. }
  28. sf::Texture bomb;
  29. if(!bomb.loadFromFile("bomb.png"))
  30. {
  31. std::cout << "bomba nie dziala" << std::endl;
  32. }
  33. sf::Texture odkryte;
  34. if(!odkryte.loadFromFile("pole.png"))
  35. {
  36. std::cout << "pole odkryte nie dziala" << std::endl;
  37. }
  38. sf::RectangleShape rectangle(sf::Vector2f(board_width,board_height));
  39.  
  40. sf::Texture field;
  41. if (!field.loadFromFile("pytajnik.png"))
  42. {
  43. std::cout << "pytajnik nie dziala" << std::endl;
  44. }
  45. field.setSmooth(true);
  46. odkryte.setSmooth(true);
  47.  
  48.  
  49. sf::Sprite sprite;
  50. sprite.setTexture(texture);
  51.  
  52. while (window.isOpen())
  53. {
  54. window.clear();
  55. window.draw(sprite);
  56.  
  57. for(int x=1; x<=10; ++x)
  58. for (int y=1;y<=10; ++y)
  59. {
  60. rectangle.setPosition(x*cel_len,y*cel_len);
  61. rectangle.setTexture(&field);
  62. window.draw(rectangle);
  63. }
  64.  
  65.  
  66.  
  67.  
  68.  
  69. sf::Event event;
  70. while (window.pollEvent(event))
  71. {
  72. if (event.type == sf::Event::Closed)
  73. window.close();
  74. if (event.type == sf::Event::MouseButtonPressed)
  75. {
  76. int wiersz;
  77. wiersz = event.mouseButton.x/cel_len;
  78. int kolumna;
  79. kolumna=event.mouseButton.y/cel_len;
  80.  
  81. if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
  82. {
  83. if(event.mouseButton.x>35 and event.mouseButton.x<353 and event.mouseButton.y>43 and event.mouseButton.y<353)
  84. {
  85. board.revealField(wiersz, kolumna);
  86. field.update(odkryte);
  87.  
  88.  
  89. // std:: cout << "odkrywam pole " << std::endl;
  90. }
  91.  
  92. }
  93. if (sf::Mouse::isButtonPressed(sf::Mouse::Right))
  94. {
  95. if(event.mouseButton.x>35 and event.mouseButton.x<353 and event.mouseButton.y>43 and event.mouseButton.y<353)
  96. {
  97. board.toggleFlag(wiersz, kolumna);
  98. field.swap(flag);
  99.  
  100.  
  101. // std:: cout << "stawiam flage " << std::endl;
  102. }
  103.  
  104. }
  105. }
  106. }
  107.  
  108.  
  109. window.display();
  110. }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement