Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // SN Edyta.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h" //coś... nie wiem co XD
- #include <iostream> //bliblioteka do cmd
- #include <string> //biblioteka do zmiennej string
- #include <SFML/Graphics.hpp> //biblioteka SFML od grafiki
- #include <SFML/Audio.hpp>
- using namespace std; //dzięi temu nie trzeba przed [cout] pisać [std::cout]
- bool blockMouse = 0; //zmienna sprawdzająca czy przycisk jest wcśnięty
- bool blockMouse1 = 0;
- bool blockMouse2 = 0;
- bool blockMouse3 = 0;
- bool blockMouse4 = 0;
- bool blockMouse5 = 0;
- int score = 0; //wynik
- int multiplier = 1;
- int difference_Int = 0;
- float difference_Float = 0;
- string stringToDisplay; //zmienna od wersji tekstowej wyniku
- string stringMultiplier;
- float lineX = 10,
- lineY = 200,
- space = 100;
- /* Potrzebne do kompilacji na systemach Linux */
- #define _linux_
- #ifdef _linux_
- std::string to_string(int var)
- {
- // std::cout << "var: " << var << std::endl;
- std::string ret = "";
- char tmp[256];
- sprintf(tmp, "%i", var);
- ret = tmp;
- // std::cout << "ret: " << ret << std::endl;
- return ret;
- }
- #endif /* _linux_ */
- float coeffx = 0.075;
- float coeffy = 0.02;
- float space_coeff = 0.1;
- float lineX_coeff = 0.01;
- float lineY_coeff = 0.2;
- int main()
- {
- sf::RenderWindow window(sf::VideoMode(1000, 1000), "SFML works!"); //wyrenderowanie okna
- //sf::Texture tekstura;
- sf::Texture Tbackgrund;//stworzenie tekstury
- sf::Texture Tearth;
- sf::Texture Tline;
- //tekstura.loadFromFile("celownik.jpg");
- Tbackgrund.loadFromFile("tlo.gif");//wgranioe tekstury
- Tearth.loadFromFile("sakwa.png");
- Tline.loadFromFile("punkt.gif");
- sf::Font font; //stworzenie czcionki
- font.loadFromFile("font.ttf"); //wgranie czcionki
- sf::Text text1; //stworzenie tekstu
- text1.setFont(font); //wgranie czcionki do tekstu
- text1.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
- sf::Text text2; //stworzenie tekstu
- text2.setFont(font); //wgranie czcionki do tekstu
- text2.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
- sf::Text text3; //stworzenie tekstu
- text3.setFont(font); //wgranie czcionki do tekstu
- text3.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
- sf::Text text4; //stworzenie tekstu
- text4.setFont(font); //wgranie czcionki do tekstu
- text4.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
- sf::Text text5; //stworzenie tekstu
- text5.setFont(font); //wgranie czcionki do tekstu
- text5.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
- sf::Text text6; //stworzenie tekstu
- text6.setFont(font); //wgranie czcionki do tekstu
- text6.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
- sf::Vector2u size = window.getSize(); //pobranie wielkości okna i zapisanie w wektorze (x, y)
- /* Oblicz współczynniki w zależności od wielkości okna */
- lineX = lineX_coeff * size.x;
- lineY = lineY_coeff * size.y;
- space = space_coeff * size.y;
- //sf::Sprite sprite(tekstura);//stworzenie sprita z tekstury
- sf::Sprite Sbackgrund(Tbackgrund);
- sf::Sprite sprite(Tearth);
- sprite.setPosition(size.x / 2, size.y / 2); //ustawia LEWY GÓRNY RÓG sprita w na środku okna
- sf::Sprite Sline1(Tline);
- Sline1.setPosition(sf::Vector2f(lineX, lineY += space));
- text1.setPosition(lineX + (coeffx * size.x), lineY + (coeffy * size.y));
- sf::Sprite Sline2(Tline);
- Sline2.setPosition(sf::Vector2f(lineX, lineY += space));
- text2.setPosition(lineX + (coeffx * size.x), lineY + (coeffy * size.y));
- sf::Sprite Sline3(Tline);
- Sline3.setPosition(sf::Vector2f(lineX, lineY += space));
- text3.setPosition(lineX + (coeffx * size.x), lineY + (coeffy * size.y));
- sf::Sprite Sline4(Tline);
- Sline4.setPosition(sf::Vector2f(lineX, lineY += space));
- text4.setPosition(lineX + (coeffx * size.x), lineY + (coeffy * size.y));
- sf::Sprite Sline5(Tline);
- Sline5.setPosition(sf::Vector2f(lineX, lineY += space));
- text5.setPosition(lineX + (coeffx * size.x), lineY + (coeffy * size.y));
- text6.setPosition(700, 5);
- text1.setString("+1 Cost: 25");
- text2.setString("+5 Cost: 50");
- text3.setString("+25 Cost: 150");
- text4.setString("+100 Cost: 5.000");
- text5.setString("+1.000 Cost: 1.000.000");
- sf::Text text; //stworzenie tekstu
- text.setFont(font); //wgranie czcionki do tekstu
- text.setFillColor(sf::Color::Red); //ustawienie koloru tekstu
- sf::Music music;
- //music.openFromFile("Enej.ogg");
- music.play();
- while (window.isOpen()) //otworzenie pętli okna
- {
- sf::FloatRect collisionBox = sprite.getGlobalBounds();// tworzy box od kolizji wielkości sprita
- sf::FloatRect Box1 = Sline1.getGlobalBounds();
- sf::FloatRect Box2 = Sline2.getGlobalBounds();
- sf::FloatRect Box3 = Sline3.getGlobalBounds();
- sf::FloatRect Box4 = Sline4.getGlobalBounds();
- sf::FloatRect Box5 = Sline5.getGlobalBounds();
- sf::Event event; //sprawdzanie event-ów w tym przypadku sprawdza czy "x" w oknie jest naciśnięty
- while (window.pollEvent(event))
- {
- if (event.type == sf::Event::Closed)
- window.close();
- if (event.type == sf::Event::Resized)
- {
- size = window.getSize();
- size.y = size.x; /* Apekt 1:1 */
- }
- }
- sf::Vector2i mousePosition = sf::Mouse::getPosition(window); //pobiera poycję kursora
- ///////////////////////////////////////////////////////////////////////////////
- // if (size.x > 1000) {
- // size.x = 1000;
- // }
- // size.y = size.x;
- // difference_Int = 1000 - size.x;
- //difference_Float = 1000 / float(size.x) ;
- //sprite.setScale(sf::Vector2f(difference_Float, difference_Float));
- // window.setSize(sf::Vector2u(size));
- // cout << difference_Float << endl;
- window.setSize(size);
- ////////////////////////////////////////////////////////////////////////////////////
- /*lineY = 200,
- Sline1.setPosition(sf::Vector2f(lineX, lineY += space));
- Sline2.setPosition(sf::Vector2f(lineX, lineY += space));
- Sline3.setPosition(sf::Vector2f(lineX, lineY += space));
- Sline4.setPosition(sf::Vector2f(lineX, lineY += space));
- Sline5.setPosition(sf::Vector2f(lineX, lineY += space));
- */
- if (sf::Mouse::isButtonPressed(sf::Mouse::Left)) //jeśli przycisk na myszce kliknięty...
- {
- if (collisionBox.contains(sf::Vector2f(mousePosition.x, mousePosition.y))) { //jeśli pozycja kursora i boxu od kolizji się pokrywają...
- //cout << "tak" << score << endl;
- if (blockMouse == 0) { //jeśli przycisk nie był wciśnięty
- score += 1 + multiplier; //powiększ wynik
- blockMouse = 1; //stan zmiennej od przycisku na "wciśniętą"
- }
- }
- else{
- //cout << "nie" << score << endl << multiplier;
- }
- if (Box1.contains(sf::Vector2f(mousePosition.x, mousePosition.y))) {
- if (blockMouse1 == 0 && score >= 25) {
- multiplier += 1;
- score -= 25;
- blockMouse1 = 1;
- }
- }
- if (Box2.contains(sf::Vector2f(mousePosition.x, mousePosition.y))) {
- if (blockMouse2 == 0 && score >= 50) {
- multiplier += 5;
- score -= 50;
- blockMouse2 = 1;
- }
- }
- if (Box3.contains(sf::Vector2f(mousePosition.x, mousePosition.y))) {
- if (blockMouse3 == 0 && score >= 150) {
- multiplier += 25;
- score -= 150;
- blockMouse3 = 1;
- }
- }
- if (Box4.contains(sf::Vector2f(mousePosition.x, mousePosition.y))) {
- if (blockMouse4 == 0 && score >= 5000) {
- multiplier += 100;
- score -= 5000;
- blockMouse4 = 1;
- }
- }
- if (Box5.contains(sf::Vector2f(mousePosition.x, mousePosition.y))) {
- if (blockMouse5 == 0 && score >= 1000000) {
- multiplier += 1000;
- score -= 1000000;
- blockMouse5 = 1;
- }
- }
- }else {
- blockMouse = 0; //jeśli przycisk myszki puszczony to zmień stan zmiennej od przycisku na "nie wciśniętą"
- blockMouse1 = 0;
- blockMouse2 = 0;
- blockMouse3 = 0;
- blockMouse4 = 0;
- blockMouse5 = 0;
- }
- stringMultiplier = to_string(multiplier);
- text6.setString("Multiplier: " + stringMultiplier);
- stringToDisplay = to_string(score); // zmień wynik int na string
- text.setString(stringToDisplay); //wartość tekst ustawiony na ten ze stringa
- // text.setPosition((0.54 * size.x), (0.9 * size.y));
- text.setPosition(500, 650);
- text.setCharacterSize(50);
- window.clear();//wyczyść okno
- window.draw(Sbackgrund);
- window.draw(sprite);//narysuj sprita
- window.draw(text);//narysuj tekst
- window.draw(Sline1);
- window.draw(Sline2);
- window.draw(Sline3);
- window.draw(Sline4);
- window.draw(Sline5);
- window.draw(text1);
- window.draw(text2);
- window.draw(text3);
- window.draw(text4);
- window.draw(text5);
- window.draw(text6);
- window.display();//wyświetl to co narysowałeś
- }
- // cin.get();
- // cin.get();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement