Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.72 KB | None | 0 0
  1. // SN Edyta.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h" //coś... nie wiem co XD
  5. #include <iostream> //bliblioteka do cmd
  6. #include <string> //biblioteka do zmiennej string
  7. #include <SFML/Graphics.hpp> //biblioteka SFML od grafiki
  8. #include <SFML/Audio.hpp>
  9.  
  10. using namespace std; //dzięi temu nie trzeba przed [cout] pisać [std::cout]
  11.  
  12. bool blockMouse = 0; //zmienna sprawdzająca czy przycisk jest wcśnięty
  13. bool blockMouse1 = 0;
  14. bool blockMouse2 = 0;
  15. bool blockMouse3 = 0;
  16. bool blockMouse4 = 0;
  17. bool blockMouse5 = 0;
  18. int score = 0; //wynik
  19. int multiplier = 1;
  20. int difference_Int = 0;
  21. float difference_Float = 0;
  22.  
  23. string stringToDisplay; //zmienna od wersji tekstowej wyniku
  24. string stringMultiplier;
  25.  
  26. float lineX = 10,
  27.       lineY = 200,
  28.       space = 100;
  29.  
  30. /* Potrzebne do kompilacji na systemach Linux */
  31. #define _linux_
  32. #ifdef _linux_
  33. std::string to_string(int var)
  34. {
  35. //  std::cout << "var: " << var << std::endl;
  36.     std::string ret = "";
  37.     char tmp[256];
  38.     sprintf(tmp, "%i", var);
  39.     ret = tmp;
  40. //  std::cout << "ret: " << ret << std::endl;
  41.     return ret;
  42. }
  43. #endif /* _linux_ */
  44.  
  45. float coeffx = 0.075;
  46. float coeffy = 0.02;
  47. float space_coeff = 0.1;
  48. float lineX_coeff = 0.01;
  49. float lineY_coeff = 0.2;
  50.  
  51.  
  52. int main()
  53. {
  54.     sf::RenderWindow window(sf::VideoMode(1000, 1000), "SFML works!"); //wyrenderowanie okna
  55.  
  56.     //sf::Texture tekstura;
  57.     sf::Texture Tbackgrund;//stworzenie tekstury
  58.     sf::Texture Tearth;
  59.     sf::Texture Tline;
  60.     //tekstura.loadFromFile("celownik.jpg");
  61.     Tbackgrund.loadFromFile("tlo.gif");//wgranioe tekstury
  62.     Tearth.loadFromFile("sakwa.png");
  63.     Tline.loadFromFile("punkt.gif");
  64.  
  65.     sf::Font font; //stworzenie czcionki
  66.     font.loadFromFile("font.ttf"); //wgranie czcionki
  67.  
  68.    
  69.         sf::Text text1; //stworzenie tekstu
  70.         text1.setFont(font); //wgranie czcionki do tekstu
  71.         text1.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
  72.         sf::Text text2; //stworzenie tekstu
  73.         text2.setFont(font); //wgranie czcionki do tekstu
  74.         text2.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
  75.         sf::Text text3; //stworzenie tekstu
  76.         text3.setFont(font); //wgranie czcionki do tekstu
  77.         text3.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
  78.         sf::Text text4; //stworzenie tekstu
  79.         text4.setFont(font); //wgranie czcionki do tekstu
  80.         text4.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
  81.         sf::Text text5; //stworzenie tekstu
  82.         text5.setFont(font); //wgranie czcionki do tekstu
  83.         text5.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
  84.         sf::Text text6; //stworzenie tekstu
  85.         text6.setFont(font); //wgranie czcionki do tekstu
  86.         text6.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
  87.  
  88.         sf::Vector2u size = window.getSize(); //pobranie wielkości okna i zapisanie w wektorze (x, y)
  89.         /* Oblicz współczynniki w zależności od wielkości okna */
  90.         lineX = lineX_coeff * size.x;
  91.         lineY = lineY_coeff * size.y;
  92.         space = space_coeff * size.y;
  93.  
  94.     //sf::Sprite sprite(tekstura);//stworzenie sprita z tekstury
  95.         sf::Sprite Sbackgrund(Tbackgrund);
  96.         sf::Sprite sprite(Tearth);
  97.     sprite.setPosition(size.x / 2, size.y / 2); //ustawia LEWY GÓRNY RÓG sprita w na środku okna
  98.         sf::Sprite Sline1(Tline);
  99.         Sline1.setPosition(sf::Vector2f(lineX, lineY += space));
  100.         text1.setPosition(lineX + (coeffx * size.x), lineY + (coeffy * size.y));
  101.         sf::Sprite Sline2(Tline);
  102.         Sline2.setPosition(sf::Vector2f(lineX, lineY += space));
  103.         text2.setPosition(lineX + (coeffx * size.x), lineY + (coeffy * size.y));
  104.         sf::Sprite Sline3(Tline);
  105.         Sline3.setPosition(sf::Vector2f(lineX, lineY += space));
  106.         text3.setPosition(lineX + (coeffx * size.x), lineY + (coeffy * size.y));
  107.         sf::Sprite Sline4(Tline);
  108.         Sline4.setPosition(sf::Vector2f(lineX, lineY += space));
  109.         text4.setPosition(lineX + (coeffx * size.x), lineY + (coeffy * size.y));
  110.         sf::Sprite Sline5(Tline);
  111.         Sline5.setPosition(sf::Vector2f(lineX, lineY += space));
  112.         text5.setPosition(lineX + (coeffx * size.x), lineY + (coeffy * size.y));
  113.  
  114.         text6.setPosition(700, 5);
  115.  
  116.         text1.setString("+1   Cost: 25");
  117.         text2.setString("+5   Cost: 50");
  118.         text3.setString("+25   Cost: 150");
  119.         text4.setString("+100   Cost: 5.000");
  120.         text5.setString("+1.000   Cost: 1.000.000");
  121.  
  122.    
  123.  
  124.  
  125.    
  126.  
  127.  
  128.  
  129.     sf::Text text; //stworzenie tekstu
  130.     text.setFont(font); //wgranie czcionki do tekstu
  131.     text.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
  132.  
  133.  
  134.  
  135.     sf::Music music;
  136.     //music.openFromFile("Enej.ogg");
  137.     music.play();
  138.     while (window.isOpen()) //otworzenie pętli okna
  139.     {
  140.  
  141.  
  142.         sf::FloatRect collisionBox = sprite.getGlobalBounds();// tworzy box od kolizji wielkości sprita
  143.         sf::FloatRect Box1 = Sline1.getGlobalBounds();
  144.         sf::FloatRect Box2 = Sline2.getGlobalBounds();
  145.         sf::FloatRect Box3 = Sline3.getGlobalBounds();
  146.         sf::FloatRect Box4 = Sline4.getGlobalBounds();
  147.         sf::FloatRect Box5 = Sline5.getGlobalBounds();
  148.  
  149.         sf::Event event; //sprawdzanie event-ów w tym przypadku sprawdza czy "x" w oknie jest naciśnięty
  150.  
  151.         while (window.pollEvent(event))
  152.         {
  153.             if (event.type == sf::Event::Closed)
  154.                 window.close();
  155.             if (event.type == sf::Event::Resized)
  156.             {
  157.                 size = window.getSize();
  158.                 size.y = size.x; /* Apekt 1:1 */
  159.             }
  160.         }
  161.    
  162.  
  163.  
  164.         sf::Vector2i mousePosition = sf::Mouse::getPosition(window); //pobiera poycję kursora
  165.         ///////////////////////////////////////////////////////////////////////////////
  166.  
  167.  
  168.  
  169.  
  170. //      if (size.x > 1000) {
  171. //          size.x = 1000;
  172. //      }
  173. //      size.y = size.x;
  174. //      difference_Int = 1000 - size.x;
  175.  
  176.         //difference_Float = 1000 / float(size.x) ;
  177.         //sprite.setScale(sf::Vector2f(difference_Float, difference_Float));
  178.  
  179. //      window.setSize(sf::Vector2u(size));
  180. //      cout << difference_Float << endl;
  181.         window.setSize(size);
  182.  
  183.  
  184.  
  185.  
  186.         ////////////////////////////////////////////////////////////////////////////////////
  187.         /*lineY = 200,
  188.         Sline1.setPosition(sf::Vector2f(lineX, lineY += space));
  189.         Sline2.setPosition(sf::Vector2f(lineX, lineY += space));
  190.         Sline3.setPosition(sf::Vector2f(lineX, lineY += space));
  191.         Sline4.setPosition(sf::Vector2f(lineX, lineY += space));
  192.         Sline5.setPosition(sf::Vector2f(lineX, lineY += space));
  193.         */
  194.        
  195.  
  196.  
  197.  
  198.         if (sf::Mouse::isButtonPressed(sf::Mouse::Left)) //jeśli przycisk na myszce kliknięty...
  199.         {
  200.             if (collisionBox.contains(sf::Vector2f(mousePosition.x, mousePosition.y))) { //jeśli pozycja kursora i boxu od kolizji się pokrywają...
  201.                     //cout << "tak" << score << endl;
  202.                     if (blockMouse == 0) { //jeśli przycisk nie był wciśnięty
  203.                         score += 1 + multiplier; //powiększ wynik
  204.                         blockMouse = 1; //stan zmiennej od przycisku na "wciśniętą"
  205.                     }
  206.             }
  207.             else{
  208.                     //cout << "nie" << score << endl << multiplier;
  209.                    
  210.             }
  211.  
  212.             if (Box1.contains(sf::Vector2f(mousePosition.x, mousePosition.y))) {
  213.                 if (blockMouse1 == 0 && score >= 25) {
  214.                     multiplier += 1;
  215.                     score -= 25;
  216.                     blockMouse1 = 1;
  217.                 }
  218.             }
  219.             if (Box2.contains(sf::Vector2f(mousePosition.x, mousePosition.y))) {
  220.                 if (blockMouse2 == 0 && score >= 50) {
  221.                     multiplier += 5;
  222.                     score -= 50;
  223.                     blockMouse2 = 1;
  224.                 }
  225.             }
  226.             if (Box3.contains(sf::Vector2f(mousePosition.x, mousePosition.y))) {
  227.                 if (blockMouse3 == 0 && score >= 150) {
  228.                     multiplier += 25;
  229.                     score -= 150;
  230.                     blockMouse3 = 1;
  231.                 }
  232.             }
  233.             if (Box4.contains(sf::Vector2f(mousePosition.x, mousePosition.y))) {
  234.                 if (blockMouse4 == 0 && score >= 5000) {
  235.                     multiplier += 100;
  236.                     score -= 5000;
  237.                     blockMouse4 = 1;
  238.                 }
  239.             }
  240.             if (Box5.contains(sf::Vector2f(mousePosition.x, mousePosition.y))) {
  241.                 if (blockMouse5 == 0 && score >= 1000000) {
  242.                     multiplier += 1000;
  243.                     score -= 1000000;
  244.                     blockMouse5 = 1;
  245.                 }
  246.             }
  247.  
  248.  
  249.  
  250.  
  251.         }else {
  252.             blockMouse = 0; //jeśli przycisk myszki puszczony to zmień stan zmiennej od przycisku na "nie wciśniętą"
  253.             blockMouse1 = 0;
  254.             blockMouse2 = 0;
  255.             blockMouse3 = 0;
  256.             blockMouse4 = 0;
  257.             blockMouse5 = 0;
  258.  
  259.         }
  260.  
  261.  
  262.  
  263.  
  264.         stringMultiplier = to_string(multiplier);
  265.         text6.setString("Multiplier: " + stringMultiplier);
  266.  
  267.  
  268.  
  269.         stringToDisplay = to_string(score); // zmień wynik int na string
  270.         text.setString(stringToDisplay); //wartość tekst ustawiony na ten ze stringa
  271. //      text.setPosition((0.54 * size.x), (0.9 * size.y));
  272.         text.setPosition(500, 650);
  273.         text.setCharacterSize(50);
  274.  
  275.  
  276.         window.clear();//wyczyść okno
  277.         window.draw(Sbackgrund);
  278.         window.draw(sprite);//narysuj sprita
  279.         window.draw(text);//narysuj tekst
  280.         window.draw(Sline1);
  281.         window.draw(Sline2);
  282.         window.draw(Sline3);
  283.         window.draw(Sline4);
  284.         window.draw(Sline5);
  285.         window.draw(text1);
  286.         window.draw(text2);
  287.         window.draw(text3);
  288.         window.draw(text4);
  289.         window.draw(text5);
  290.         window.draw(text6);
  291.         window.display();//wyświetl to co narysowałeś
  292.     }
  293.  
  294. //  cin.get();
  295. //  cin.get();
  296.     return 0;
  297. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement