Advertisement
Dimaland

CourseWork

Dec 3rd, 2023 (edited)
823
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 36.12 KB | None | 0 0
  1. #include <SFML/Graphics.hpp>
  2. #include <conio.h>
  3. #include <SFML/Audio.hpp>
  4. #include "SetMenu.hpp"
  5. #include "SetSound.hpp"
  6.  
  7. using namespace sf;
  8.  
  9. float offsetX = 0, offsetY = 0;
  10.  
  11. const int height = 18;
  12. const int width = 66;
  13.  
  14. const int tileSize = 77;
  15. const int numOfEnemy = 60;
  16.  
  17. int currentLevel = 1;
  18.  
  19. bool play = false, isMenu = true, game = false, puskgame = false, isWin = false, isDie = false, isPause = false;
  20.  
  21. SetSound sound;
  22.  
  23. String TileMap[height] = {
  24. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
  25. "A            A                         A                         A",
  26. "A       C    A                         A   A       A             A",
  27. "AAAAAAAAAAA  A   A       AAA        A  A  AAAAAAAAAAAAAA      AAAA",
  28. "A            A  AAAAAAAAAAAAAAAAAAAAA  A            A            A",
  29. "A            AA           A            AAAAAAAAAA   A            A",
  30. "A    A  A    A            A            A            AAAA      AAAA",
  31. "A  AAAAAAAAAAAAAAAAAAAAA  A A         AA           AA            A",
  32. "A            A           AA AAAAAAAAAAAA   A        A            A",
  33. "A            A            A            A  AAAXXAAXXAAAAA      AAAA",
  34. "AAAAAAAAAAX  AA  AA A A A A            A            A            A",
  35. "A            A    A       A   X  X  X  AA           A            A",
  36. "A            A    A       AAAAAAAAAAA  A       A    AAAA      AAAA",
  37. "A  A        AA   AA       A            AAAAAAAAAA   A            A",
  38. "A  AAAAAAAAAAAA   A       A            A            A            A",
  39. "A                 A       A                        AAAAA      AAAA",
  40. "A                AAXXXXXXXA         A    A          AAAAXXXXXXAAAA",
  41. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
  42. };
  43.  
  44. class Player {
  45. public:
  46.     float speedX, speedY;
  47.     FloatRect rect;
  48.     bool onGround, rig;
  49.     Sprite sprite;
  50.     float curFrame, damFrame;
  51.     int numOfLife, blockdam;
  52.     bool life, damage;
  53.  
  54.     Player(Texture& image) {
  55.         sprite.setTexture(image);
  56.         rect = FloatRect(tileSize, tileSize * 2, 77 * 0.9, 65 * 0.9);
  57.         sprite.setTextureRect(IntRect(0, 0, 77, 65));
  58.         sprite.setScale(0.9, 0.9);
  59.         speedX = speedY = 0;
  60.         curFrame = 0;
  61.         numOfLife = 3;
  62.         life = true;
  63.         damage = false;
  64.         damFrame = 0;
  65.         blockdam = 0;
  66.     }
  67.  
  68.     void update(float time) {
  69.         rect.left += speedX * time;
  70.         Collision(0);
  71.  
  72.         if (!onGround)
  73.             speedY = speedY + 0.0005 * time;
  74.  
  75.         rect.top += speedY * time;
  76.         onGround = false;
  77.         Collision(1);
  78.  
  79.         if (numOfLife <= 0) {
  80.             life = false;
  81.             sound.music[1].stop();
  82.  
  83.             play = false;
  84.             isDie = true;
  85.         }
  86.  
  87.         if (isWin)
  88.             sprite.setTextureRect(IntRect(0, 0, 77, 65));
  89.  
  90.         curFrame += 0.01 * time;
  91.         if (curFrame > 8)
  92.             curFrame -= 7;
  93.  
  94.         if (speedX > 0) {
  95.             if (speedY == 0)
  96.                 sprite.setTextureRect(IntRect(77 * int(curFrame), 0, 77, 65));
  97.             else
  98.                 sprite.setTextureRect(IntRect(0, 81, 45, 65));
  99.  
  100.             rig = true;
  101.         }
  102.         if (speedX < 0) {
  103.             if (speedY == 0)
  104.                 sprite.setTextureRect(IntRect(77 * int(curFrame) + 77, 0, -77, 65));
  105.             else
  106.                 sprite.setTextureRect(IntRect(45, 81, -45, 65));
  107.  
  108.             rig = false;
  109.         }
  110.  
  111.         sprite.setPosition(rect.left - offsetX, rect.top - offsetY);
  112.  
  113.         speedX = 0;
  114.     }
  115.  
  116.     void Collision(int dir) {
  117.         for (int i = rect.top / tileSize; i < (rect.top + rect.height) / tileSize; i++)
  118.             for (int j = rect.left / tileSize; j < (rect.left + rect.width) / tileSize; j++) {
  119.                 if (TileMap[i][j] == 'A' || TileMap[i][j] == 'K') {
  120.                     if (speedX > 0 && dir == 0)
  121.                         rect.left = j * tileSize - rect.width;
  122.                     if (speedX < 0 && dir == 0)
  123.                         rect.left = j * tileSize + tileSize;
  124.                     if (speedY > 0 && dir == 1) {
  125.                         rect.top = i * tileSize - rect.height;
  126.                         speedY = 0;
  127.                         onGround = true;
  128.                     }
  129.                     if (speedY < 0 && dir == 1) {
  130.                         rect.top = i * tileSize + tileSize;
  131.                         speedY = 0;
  132.                     }
  133.                 }
  134.  
  135.                 if (TileMap[i][j] == 'B') {
  136.                     sound.bonus.play();
  137.  
  138.                     TileMap[i][j] = ' ';
  139.                 }
  140.  
  141.                 if (TileMap[i][j] == 'C') {
  142.                     sound.bonus.play();
  143.  
  144.                     TileMap[i][j] = ' ';
  145.  
  146.                     numOfLife++;
  147.                 }
  148.  
  149.                 if (TileMap[i][j] == '2' || TileMap[i][j] == '3' ||
  150.                     TileMap[i][j] == '4' || TileMap[i][j] == '5') {
  151.                     sound.win.play();
  152.                     sound.music[1].stop();
  153.  
  154.                     rect.left += tileSize + tileSize;
  155.  
  156.                     for (int z = 0; z < height; z++)
  157.                         TileMap[z][j] = 'A';
  158.  
  159.                     isWin = true;
  160.                     play = false;
  161.                 }
  162.  
  163.                 if (TileMap[i][j] == 'X' && !damage) {
  164.                     if ((speedX > 0 && dir == 0) || (speedX < 0 && dir == 0) ||
  165.                         (speedY > 0 && dir == 1) || (speedY < 0 && dir == 1)) {
  166.                         sound.dieman.play();
  167.                         numOfLife--;
  168.                         damage = true;
  169.  
  170.                         if (numOfLife > 0) {
  171.                             if (i == 10 && j == 10) {
  172.                                 if (speedY < 0 && dir == 1)
  173.                                     blockdam = 1;
  174.  
  175.                                 else if (speedY > 0 && dir == 1)
  176.                                     blockdam = 2;
  177.                             }
  178.  
  179.                             if (i == 16 && j >= 19 && j <= 25)
  180.                                 blockdam = 3;
  181.  
  182.                             if (i == 11 && (j == 30 || j == 33 || j == 36))
  183.                                 blockdam = 4;
  184.  
  185.                             if (i == 9 && (j == 45 || j == 46 || j == 49 || j == 50)) {
  186.                                 if (speedY < 0 && dir == 1)
  187.                                     blockdam = 5;
  188.  
  189.                                 else if (speedY > 0 && dir == 1)
  190.                                     blockdam = 6;
  191.                             }
  192.  
  193.                             if (i == 16 && j >= 56 && j <= 61)
  194.                                 blockdam = 7;
  195.                         }
  196.                     }
  197.                 }
  198.             }
  199.     }
  200. };
  201.  
  202. class Bullet {
  203. public:
  204.     float speedX, speedY;
  205.     FloatRect rect;
  206.     int go;
  207.     Sprite sprite;
  208.  
  209.     Bullet(Texture& image) {
  210.         sprite.setTexture(image);
  211.         speedX = speedY = 0;
  212.         go = 0;
  213.     }
  214.  
  215.     void update(float time) {
  216.         rect.left += speedX * time;
  217.         Collision(0);
  218.  
  219.         rect.top += speedY * time;
  220.         Collision(1);
  221.  
  222.         sprite.setPosition(rect.left - offsetX, rect.top - offsetY);
  223.     }
  224.  
  225.     void Collision(int dir) {
  226.         for (int i = rect.top / tileSize; i < (rect.top + rect.height) / tileSize; i++)
  227.             for (int j = rect.left / tileSize; j < (rect.left + rect.width) / tileSize; j++)
  228.                 if (TileMap[i][j] == 'A')
  229.                     if ((speedX > 0 && dir == 0) || (speedX < 0 && dir == 0))
  230.                         go = 0;
  231.     }
  232. };
  233.  
  234. class Enemy {
  235. public:
  236.     float speedX;
  237.     FloatRect rect;
  238.     Sprite sprite;
  239.     float curFrame;
  240.     bool life;
  241.  
  242.     void set(Texture& image, int x, int y) {
  243.         sprite.setTexture(image);
  244.         sprite.setScale(0.38, 0.38);
  245.         rect = FloatRect(x, y, tileSize, tileSize);
  246.  
  247.         speedX = 0.1;
  248.         curFrame = 0;
  249.         life = false;
  250.     }
  251.  
  252.     void update(float time) {
  253.         if (!isPause)
  254.             rect.left += speedX * time;
  255.  
  256.         Collision();
  257.  
  258.         curFrame += time * 0.005;
  259.         if (curFrame > 5)
  260.             curFrame -= 5;
  261.  
  262.         if (life) {
  263.             if (speedX > 0)
  264.                 sprite.setTextureRect(IntRect(165 * int(curFrame), 0, 165, 204));
  265.             else if (speedX < 0)
  266.                 sprite.setTextureRect(IntRect(165 * int(curFrame) + 165, 0, -165, 204));
  267.         }
  268.         else
  269.             sprite.setTextureRect(IntRect(0, 0, 0, 0));
  270.  
  271.         sprite.setPosition(rect.left - offsetX, rect.top - offsetY);
  272.     }
  273.  
  274.     void Collision() {
  275.         for (int i = rect.top / tileSize; i < (rect.top + rect.height) / tileSize; i++)
  276.             for (int j = rect.left / tileSize; j < (rect.left + rect.width) / tileSize; j++)
  277.                 if (TileMap[i][j] == 'A') {
  278.                     if (speedX > 0) {
  279.                         rect.left = j * tileSize - rect.width;
  280.                         speedX *= -1;
  281.                     }
  282.                     else if (speedX < 0) {
  283.                         rect.left = j * tileSize + tileSize;
  284.                         speedX *= -1;
  285.                     }
  286.                 }
  287.     }
  288. };
  289.  
  290. class Boss {
  291. public:
  292.     float speedY;
  293.     FloatRect rect;
  294.     Sprite sprite;
  295.     float curFrame;
  296.     bool life, rig;
  297.     int numOfLife;
  298.  
  299.     void set(Texture& image, int x, int y) {
  300.         sprite.setTexture(image);
  301.         sprite.setScale(1.5, 1.5);
  302.         rect = FloatRect(x, y, tileSize, tileSize);
  303.  
  304.         speedY = 0.2;
  305.         curFrame = 0;
  306.         life = true;
  307.         rig = false;
  308.         numOfLife = 10;
  309.     }
  310.  
  311.     void update(float time) {
  312.         if (!isPause)
  313.             rect.top += speedY * time;
  314.  
  315.         Collision();
  316.  
  317.         if (life && numOfLife == 0) {
  318.             life = false;
  319.  
  320.             sprite.setTextureRect(IntRect(0, 0, 0, 0));
  321.  
  322.             sound.music[1].stop();
  323.             sound.win.play();
  324.  
  325.             isWin = true;
  326.             play = false;
  327.         }
  328.  
  329.         sprite.setPosition(rect.left - offsetX, rect.top - offsetY);
  330.     }
  331.  
  332.     void Collision() {
  333.         for (int i = rect.top / tileSize; i < (rect.top + rect.height) / tileSize; i++)
  334.             for (int j = rect.left / tileSize; j < (rect.left + rect.width) / tileSize; j++)
  335.                 if (TileMap[i][j] == 'A')
  336.                 {
  337.                     if (speedY > 0) {
  338.                         rect.top = i * tileSize - rect.height;
  339.                         speedY *= -1;
  340.                     }
  341.                     else if (speedY < 0) {
  342.                         rect.top = i * tileSize + tileSize;
  343.                         speedY *= -1;
  344.                     }
  345.                 }
  346.     }
  347. };
  348.  
  349. class BulletBoss {
  350. public:
  351.     float speedX, speedY;
  352.     FloatRect rect;
  353.     int go;
  354.     Sprite sprite;
  355.  
  356.     void set(Texture& image, int x, int y) {
  357.         sprite.setTexture(image);
  358.         speedX = speedY = 0;
  359.         go = 0;
  360.     }
  361.  
  362.     void update(float time) {
  363.         if (!isPause)
  364.             rect.left += speedX * time;
  365.         Collision();
  366.  
  367.         if (!isPause)
  368.             rect.top += speedY * time;
  369.  
  370.         sprite.setPosition(rect.left - offsetX, rect.top - offsetY);
  371.     }
  372.  
  373.     void Collision() {
  374.         for (int i = rect.top / tileSize; i < (rect.top + rect.height) / tileSize; i++)
  375.             for (int j = rect.left / tileSize; j < (rect.left + rect.width) / tileSize; j++)
  376.                 if (TileMap[i][j] == 'A') {
  377.                     if (speedX > 0) {
  378.                         rect.left = j * tileSize - rect.width;
  379.                         go = 0;
  380.                     }
  381.                     else if (speedX < 0) {
  382.                         rect.left = j * tileSize + tileSize;
  383.                         go = 0;
  384.                     }
  385.                 }
  386.     }
  387. };
  388.  
  389. int main() {
  390.     RenderWindow window(VideoMode(1000, 500), "Platformer!");
  391.  
  392.     Texture f;
  393.     f.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/fon.png");
  394.     Sprite background(f);
  395.  
  396.     Texture Picture;
  397.     Picture.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/man.png");
  398.     Player player(Picture);
  399.     int frame = 0;
  400.  
  401.     Texture t2;
  402.     t2.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/plat.png");
  403.     Sprite plat(t2);
  404.  
  405.     Texture t1;
  406.     t1.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/bullet.png");
  407.     Bullet bullet(t1);
  408.  
  409.     Texture tl;
  410.     tl.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/life.png");
  411.     Sprite life[10];
  412.     for (int i = 0; i < 10; i++) {
  413.         life[i].setTexture(tl);
  414.         life[i].setScale(1.3, 1.3);
  415.         life[i].setPosition(5 + 50 * i, 5);
  416.     }
  417.  
  418.     Texture t3;
  419.     t3.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/enemy.png");
  420.     Enemy enemy[numOfEnemy];
  421.     enemy[0].set(t3, 4 * tileSize, 13 * tileSize);
  422.     for (int i = 1; i < 4; i++)
  423.         enemy[i].set(t3, (18 + (i - 1)) * tileSize, 3 * tileSize);
  424.     for (int i = 4; i < 9; i++)
  425.         enemy[i].set(t3, (28 + (i - 4)) * tileSize, 3 * tileSize);
  426.     for (int i = 9; i < 16; i++)
  427.         enemy[i].set(t3, (29 + (i - 9)) * tileSize, 7 * tileSize);
  428.     for (int i = 16; i < 26; i++)
  429.         enemy[i].set(t3, (27 + (i - 16)) * tileSize, 16 * tileSize);
  430.     for (int i = 26; i < 36; i++)
  431.         enemy[i].set(t3, (42 + (i - 26)) * tileSize, 16 * tileSize);
  432.     for (int i = 36; i < 44; i++)
  433.         enemy[i].set(t3, (40 + (i - 36)) * tileSize, 12 * tileSize);
  434.     for (int i = 44; i < 53; i++)
  435.         enemy[i].set(t3, (44 + (i - 44)) * tileSize, 8 * tileSize);
  436.     for (int i = 53; i < 60; i++)
  437.         enemy[i].set(t3, (44 + (i - 53)) * tileSize, 2 * tileSize);
  438.  
  439.     int enemydam = 0, bossdam = 0;
  440.  
  441.     Texture t4;
  442.     t4.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/Boss.png");
  443.     Boss boss;
  444.     boss.set(t4, 59 * tileSize, tileSize);
  445.  
  446.     Sprite lifeBoss[10];
  447.     for (int i = 0; i < 10; i++) {
  448.         lifeBoss[i].setTexture(t4);
  449.         lifeBoss[i].setScale(0.3, 0.3);
  450.         lifeBoss[i].setPosition(40 * i, 60);
  451.     }
  452.  
  453.     Texture t5;
  454.     t5.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/pulaBoss.png");
  455.     BulletBoss bulletBos;
  456.     bulletBos.set(t5, 59 * tileSize, tileSize);
  457.  
  458.     Texture nl;
  459.     nl.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/level.png");
  460.     Sprite lvl(nl);
  461.     lvl.setPosition(700, 0);
  462.  
  463.     Texture sc;
  464.     sc.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/score.png");
  465.     Sprite score(sc);
  466.     score.setTextureRect(IntRect(0, 0, 27, 36));
  467.     score.setPosition(950, 5);
  468.  
  469.     Texture m1;
  470.     m1.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/naz.png");
  471.     Sprite naz(m1);
  472.     naz.setPosition(200, 10);
  473.  
  474.     Texture m2;
  475.     m2.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/butplay.png");
  476.     Sprite butplay(m2);
  477.     butplay.setPosition(200, 235);
  478.  
  479.     Texture m3;
  480.     m3.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/exit.png");
  481.     Sprite exit(m3);
  482.     exit.setPosition(600, 235);
  483.  
  484.     Texture m4;
  485.     m4.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/nazurav.png");
  486.     Sprite nazurav(m4);
  487.     nazurav.setPosition(350, 10);
  488.  
  489.     Texture m5;
  490.     m5.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/butlev.png");
  491.     Sprite butlev[5];
  492.     for (int i = 0; i < 5; i++) {
  493.         butlev[i].setTexture(m5);
  494.         butlev[i].setPosition(150 + 150 * i, 230);
  495.         butlev[i].setTextureRect(IntRect(0, 0, 80, 80));
  496.     }
  497.     butlev[0].setTextureRect(IntRect(0, 80, 80, 80));
  498.  
  499.     Texture m6;
  500.     m6.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/back.png");
  501.     Sprite back(m6);
  502.     back.setPosition(150, 400);
  503.  
  504.     SetMenu sm;
  505.  
  506.     Texture m7;
  507.     m7.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/win.png");
  508.     Sprite win(m7);
  509.     win.setPosition(300, 100);
  510.  
  511.     Texture m8;
  512.     m8.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/urpro.png");
  513.     Sprite urpro(m8);
  514.     urpro.setPosition(300, 100);
  515.  
  516.     Texture m9;
  517.     m9.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/sledur.png");
  518.     Sprite sledur(m9);
  519.     sledur.setPosition(500, 250);
  520.  
  521.     Texture m10;
  522.     m10.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/naczan.png");
  523.     Sprite naczan(m10);
  524.     naczan.setPosition(200, 250);
  525.  
  526.     Texture m11;
  527.     m11.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/butmen.png");
  528.     Sprite butmen(m11);
  529.     butmen.setPosition(400, 350);
  530.  
  531.     Texture m12;
  532.     m12.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/ki.png");
  533.     Sprite ki(m12);
  534.     ki.setPosition(400, 100);
  535.  
  536.     Texture m13;
  537.     m13.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/nadpause.png");
  538.     Sprite nadpause(m13);
  539.     nadpause.setPosition(400, 100);
  540.  
  541.     Texture m14;
  542.     m14.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/nadprod.png");
  543.     Sprite nadprod(m14);
  544.     nadprod.setPosition(600, 250);
  545.  
  546.     Clock clock;
  547.     sound.music[0].play();
  548.  
  549.     while (window.isOpen())
  550.     {
  551.         float time = clock.getElapsedTime().asMicroseconds();
  552.         clock.restart();
  553.         time = time / 800;
  554.  
  555.         Event event;
  556.         while (window.pollEvent(event))
  557.         {
  558.             if (event.type == Event::Closed)
  559.                 window.close();
  560.  
  561.             if (event.type == Event::MouseButtonPressed)
  562.                 if (event.key.code == Mouse::Left) {
  563.                     Vector2i pos = Mouse::getPosition(window);
  564.  
  565.                     if (isMenu) {
  566.                         if (pos.x >= 600 && pos.x <= 774 &&
  567.                             pos.y >= 235 && pos.y <= 306)
  568.                             window.close();
  569.  
  570.                         if (pos.x >= 200 && pos.x <= 392 &&
  571.                             pos.y >= 235 && pos.y <= 302) {
  572.                             sound.button.play();
  573.  
  574.                             isMenu = false;
  575.                             game = true;
  576.                         }
  577.                     }
  578.  
  579.                     else if (game) {
  580.                         if (pos.x >= 150 && pos.x <= 273 &&
  581.                             pos.y >= 400 && pos.y <= 448) {
  582.                             sound.button.play();
  583.  
  584.                             game = false;
  585.                             isMenu = true;
  586.                         }
  587.  
  588.                         for (int i = 0; i < 5; i++)
  589.                             if (pos.x >= 150 + 150 * i && pos.x <= 230 + 150 * i &&
  590.                                 pos.y >= 230 && pos.y <= 310) {
  591.                                 sound.button.play();
  592.  
  593.                                 if (sm.blv[i]) {
  594.                                     sound.music[0].stop();
  595.  
  596.                                     puskgame = true;
  597.                                     sm.pusklever[i] = true;
  598.                                 }
  599.                             }
  600.                     }
  601.  
  602.                     else if (isWin || isDie || isPause) {
  603.                         if (pos.x >= 400 && pos.x <= 685 &&
  604.                             pos.y >= 350 && pos.y <= 382) {
  605.                             sound.button.play();
  606.                             sound.music[1].stop();
  607.                             sound.music[0].play();
  608.  
  609.                             isWin = false;
  610.                             isMenu = true;
  611.                             play = false;
  612.                             isDie = false;
  613.                             player.damage = false;
  614.                             isPause = false;
  615.                             enemydam = 0;
  616.                             player.blockdam = 0;
  617.                             bossdam = 0;
  618.  
  619.                             player.numOfLife = 3;
  620.                             player.life = true;
  621.  
  622.                             player.sprite.setTextureRect(IntRect(0, 0, 77, 65));
  623.  
  624.                             for (int i = 0; i < 5; i++)
  625.                                 sm.pusklever[i] = false;
  626.  
  627.                             offsetX = 0;
  628.                             offsetY = 0;
  629.  
  630.                             player.rect.left = 77;
  631.                             player.rect.top = 172.5;
  632.                         }
  633.  
  634.                         if (pos.x >= 200 && pos.x <= 428 &&
  635.                             pos.y >= 250 && pos.y <= 291) {
  636.                             sound.button.play();
  637.  
  638.                             isWin = false;
  639.                             puskgame = true;
  640.                             isDie = false;
  641.                             player.damage = false;
  642.                             isPause = false;
  643.                             enemydam = 0;
  644.                             player.blockdam = 0;
  645.                             bossdam = 0;
  646.  
  647.                             if (currentLevel == 5)
  648.                                 offsetY = 0;
  649.                         }
  650.  
  651.                         if (pos.x >= 600 && pos.x <= 872 &&
  652.                             pos.y >= 250 && pos.y <= 290 && isPause) {
  653.                             sound.button.play();
  654.                             sound.music[1].setVolume(25);
  655.  
  656.                             isPause = false;
  657.                         }
  658.  
  659.                         else if (pos.x >= 500 && pos.x <= 856 &&
  660.                             pos.y >= 250 && pos.y <= 293 && currentLevel < 5 && !isDie) {
  661.                             sound.button.play();
  662.  
  663.                             isWin = false;
  664.                             puskgame = true;
  665.                             isDie = false;
  666.                             player.damage = false;
  667.                             isPause = false;
  668.                             enemydam = 0;
  669.                             player.blockdam = 0;
  670.                             bossdam = 0;
  671.  
  672.                             sm.pusklever[currentLevel - 1] = false;
  673.                             sm.pusklever[currentLevel] = true;
  674.                         }
  675.                     }
  676.                 }
  677.         }
  678.  
  679.         if (isWin)
  680.             sm.blv[currentLevel] = true;
  681.  
  682.         if (sm.blv[1])
  683.             butlev[1].setTextureRect(IntRect(80, 80, 80, 80));
  684.         if (sm.blv[2])
  685.             butlev[2].setTextureRect(IntRect(80 * 2, 80, 80, 80));
  686.         if (sm.blv[3])
  687.             butlev[3].setTextureRect(IntRect(80 * 3, 80, 80, 80));
  688.         if (sm.blv[4])
  689.             butlev[4].setTextureRect(IntRect(0, 80 * 2, 80, 80));
  690.  
  691.         if (puskgame) {
  692.             sound.music[1].play();
  693.             sound.music[1].setVolume(25);
  694.  
  695.             puskgame = false;
  696.             game = false;
  697.  
  698.             if (sm.pusklever[0]) {
  699.                 currentLevel = 1;
  700.  
  701.                 offsetX = 0;
  702.                 offsetY = 0;
  703.  
  704.                 player.rect.left = 77;
  705.                 player.rect.top = 172.5;
  706.  
  707.                 enemy[0].life = true;
  708.  
  709.                 //for (int i = 4; i < 7; i++)
  710.                 //  TileMap[9][i] = 'B';
  711.                 TileMap[16][7] = 'C';
  712.                 for (int i = 15; i < 17; i++)
  713.                     TileMap[i][13] = '2';
  714.             }
  715.             if (sm.pusklever[1]) {
  716.                 currentLevel = 2;
  717.  
  718.                 player.rect.left = 1098.39;
  719.                 player.rect.top = 1250.5;
  720.  
  721.                 offsetX = player.rect.left;
  722.                 offsetY = player.rect.top - 365;
  723.  
  724.                 for (int i = 1; i < 4; i++)
  725.                     enemy[i].life = true;
  726.  
  727.                 for (int i = 15; i < 17; i++)
  728.                     TileMap[i][13] = 'A';
  729.                 //TileMap[9][14] = 'B';
  730.                 //for (int i = 17; i < 19; i++)
  731.                 //  TileMap[9][i] = 'B';
  732.                 //TileMap[9][22] = 'B';
  733.                 for (int i = 19; i < 22; i++)
  734.                     TileMap[6][i] = 'C';
  735.                 //TileMap[3][14] = 'B';
  736.                 for (int i = 1; i < 3; i++)
  737.                     TileMap[i][26] = '3';
  738.             }
  739.             if (sm.pusklever[2]) {
  740.                 currentLevel = 3;
  741.  
  742.                 player.rect.left = 2079;
  743.                 player.rect.top = 172.5;
  744.  
  745.                 offsetX = player.rect.left + 500;
  746.                 offsetY = 0;
  747.  
  748.                 for (int i = 4; i < 9; i++)
  749.                     enemy[i].life = true;
  750.                 for (int i = 9; i < 16; i++)
  751.                     enemy[i].life = true;
  752.                 for (int i = 16; i < 26; i++)
  753.                     enemy[i].life = true;
  754.  
  755.                 for (int i = 1; i < 3; i++)
  756.                     TileMap[i][26] = 'A';
  757.                 /*for (int i = 28; i < 30; i++)
  758.                     TileMap[2][i] = 'B';
  759.                 for (int i = 31; i < 33; i++)
  760.                     TileMap[2][i] = 'B';
  761.                 for (int i = 34; i < 36; i++)
  762.                     TileMap[2][i] = 'B';
  763.                 for (int i = 29; i < 32; i++)
  764.                     TileMap[6][i] = 'B';
  765.                 for (int i = 33; i < 36; i++)
  766.                     TileMap[6][i] = 'B';*/
  767.                 for (int i = 27; i < 29; i++)
  768.                     TileMap[11][i] = 'C';
  769.                 /*for (int i = 31; i < 33; i++)
  770.                     TileMap[11][i] = 'B';*/
  771.                 for (int i = 34; i < 36; i++)
  772.                     TileMap[11][i] = 'C';
  773.                 /*for (int i = 27; i < 31; i++)
  774.                     TileMap[14][i] = 'B';*/
  775.                 /*for (int i = 32; i < 36; i++)
  776.                     TileMap[14][i] = 'B';*/
  777.                 for (int i = 15; i < 17; i++)
  778.                     TileMap[i][39] = '4';
  779.             }
  780.             if (sm.pusklever[3]) {
  781.                 currentLevel = 4;
  782.  
  783.                 player.rect.left = 3080;
  784.                 player.rect.top = 1250.5;
  785.  
  786.                 offsetX = player.rect.left;
  787.                 offsetY = player.rect.top - 365;
  788.  
  789.                 for (int i = 26; i < 36; i++)
  790.                     enemy[i].life = true;
  791.                 for (int i = 36; i < 44; i++)
  792.                     enemy[i].life = true;
  793.                 for (int i = 44; i < 53; i++)
  794.                     enemy[i].life = true;
  795.                 for (int i = 53; i < 60; i++)
  796.                     enemy[i].life = true;
  797.  
  798.                 for (int i = 15; i < 17; i++)
  799.                     TileMap[i][39] = 'A';
  800.                 TileMap[15][41] = 'C';
  801.                 /*for (int i = 42; i < 46; i++)
  802.                     TileMap[11][i] = 'B';*/
  803.                 TileMap[8][47] = 'C';
  804.                 /*TileMap[8][48] = 'B';*/
  805.                 /*for (int i = 43; i < 46; i++)
  806.                     TileMap[4][i] = 'B';*/
  807.                 for (int i = 1; i < 3; i++)
  808.                     TileMap[i][52] = '5';
  809.             }
  810.             if (sm.pusklever[4]) {
  811.                 currentLevel = 5;
  812.  
  813.                 boss.life = true;
  814.                 boss.numOfLife = 10;
  815.  
  816.                 player.rect.left = 4112.69;
  817.                 player.rect.top = 172.5;
  818.  
  819.                 for (int i = 1; i < 3; i++)
  820.                     TileMap[i][52] = 'A';
  821.                 for (int i = 0; i < 4; i++) {
  822.                     /*TileMap[4 + 3 * i][53] = 'B';*/
  823.                     TileMap[5 + 3 * i][54] = 'C';
  824.                 }
  825.                 for (int i = 0; i < 5; i++) {
  826.                     TileMap[2 + 3 * i][63] = 'C';
  827.                     /*TileMap[1 + 3 * i][64] = 'B';*/
  828.                 }
  829.             }
  830.  
  831.             player.numOfLife = 3;
  832.             player.life = true;
  833.  
  834.             play = true;
  835.         }
  836.  
  837.         if (player.life && !player.damage && play && !isPause) {
  838.             if (!_kbhit())
  839.                 if (player.speedY == 0) {
  840.                     if (player.rig)
  841.                         player.sprite.setTextureRect(IntRect(0, 0, 77, 65));
  842.                     else if (!player.rig)
  843.                         player.sprite.setTextureRect(IntRect(77, 0, -77, 65));
  844.                 }
  845.  
  846.             if (Keyboard::isKeyPressed(Keyboard::Left))
  847.                 player.speedX = -0.3;
  848.             if (Keyboard::isKeyPressed(Keyboard::Right))
  849.                 player.speedX = 0.3;
  850.  
  851.             if (Keyboard::isKeyPressed(Keyboard::Up))
  852.                 if (player.onGround) {
  853.                     sound.jump.play();
  854.  
  855.                     player.speedY = -0.5;
  856.  
  857.                     if (player.rig)
  858.                         player.sprite.setTextureRect(IntRect(0, 81, 45, 65));
  859.                     else if (!player.rig)
  860.                         player.sprite.setTextureRect(IntRect(45, 81, -45, 65));
  861.  
  862.                     player.onGround = false;
  863.                 }
  864.             if (Keyboard::isKeyPressed(Keyboard::Space))
  865.                 if (player.onGround && bullet.go == 0) {
  866.                     sound.shooting.play();
  867.  
  868.                     frame = 100;
  869.  
  870.                     if (player.rig) {
  871.                         bullet.go = 1;
  872.  
  873.                         bullet.rect.left = player.rect.left + 67;
  874.                         bullet.rect.top = player.rect.top + 20;
  875.                     }
  876.                     else {
  877.                         bullet.go = 2;
  878.  
  879.                         bullet.rect.left = player.rect.left - 12;
  880.                         bullet.rect.top = player.rect.top + 18;
  881.                     }
  882.                 }
  883.  
  884.             if (Keyboard::isKeyPressed(Keyboard::Escape)) {
  885.                 sound.button.play();
  886.                 sound.music[1].setVolume(10);
  887.  
  888.                 isPause = true;
  889.             }
  890.         }
  891.  
  892.         if (bullet.go == 0) {
  893.             bullet.rect.left = player.rect.left;
  894.             bullet.rect.top = player.rect.top;
  895.         }
  896.         else if (bullet.go == 1)
  897.             bullet.speedX = 2;
  898.         else if (bullet.go == 2)
  899.             bullet.speedX = -2;
  900.  
  901.         if (frame != 0)
  902.             if (player.speedY == 0) {
  903.                 if (player.rig)
  904.                     player.sprite.setTextureRect(IntRect(68, 80, 69, 61));
  905.                 else if (!player.rig)
  906.                     player.sprite.setTextureRect(IntRect(68 + 69, 80, -69, 61));
  907.  
  908.                 frame--;
  909.             }
  910.  
  911.         if (!enemy[0].life) {
  912.             TileMap[11][3] = ' ';
  913.             TileMap[12][3] = ' ';
  914.         }
  915.         else if (enemy[0].life) {
  916.             TileMap[11][3] = 'K';
  917.             TileMap[12][3] = 'K';
  918.         }
  919.         if (!enemy[1].life && !enemy[2].life && !enemy[3].life) {
  920.             TileMap[1][25] = ' ';
  921.             TileMap[2][25] = ' ';
  922.         }
  923.         else if (enemy[1].life && enemy[2].life && enemy[3].life) {
  924.             TileMap[1][25] = 'K';
  925.             TileMap[2][25] = 'K';
  926.         }
  927.         if (!enemy[4].life && !enemy[5].life && !enemy[6].life && !enemy[7].life && !enemy[8].life) {
  928.             TileMap[1][36] = ' ';
  929.             TileMap[2][36] = ' ';
  930.         }
  931.         else if (enemy[4].life && enemy[5].life && enemy[6].life && enemy[7].life && enemy[8].life) {
  932.             TileMap[1][36] = 'K';
  933.             TileMap[2][36] = 'K';
  934.         }
  935.         if (!enemy[9].life && !enemy[10].life && !enemy[10].life && !enemy[11].life && !enemy[12].life &&
  936.             !enemy[13].life && !enemy[14].life && !enemy[15].life) {
  937.             TileMap[5][28] = ' ';
  938.             TileMap[6][28] = ' ';
  939.         }
  940.         else if (enemy[9].life && enemy[10].life && enemy[10].life && enemy[11].life && enemy[12].life &&
  941.             enemy[13].life && enemy[14].life && enemy[15].life) {
  942.             TileMap[5][28] = 'K';
  943.             TileMap[6][28] = 'K';
  944.         }
  945.         if (!enemy[16].life && !enemy[17].life && !enemy[18].life && !enemy[19].life && !enemy[20].life &&
  946.             !enemy[21].life && !enemy[22].life && !enemy[23].life && !enemy[24].life && !enemy[25].life) {
  947.             TileMap[15][38] = ' ';
  948.             TileMap[16][38] = ' ';
  949.         }
  950.         else if (enemy[16].life && enemy[17].life && enemy[18].life && enemy[19].life && enemy[20].life &&
  951.             enemy[21].life && enemy[22].life && enemy[23].life && enemy[24].life && enemy[25].life) {
  952.             TileMap[15][38] = 'K';
  953.             TileMap[16][38] = 'K';
  954.         }
  955.         if (!enemy[26].life && !enemy[27].life && !enemy[28].life && !enemy[29].life && !enemy[30].life &&
  956.             !enemy[31].life && !enemy[32].life && !enemy[33].life && !enemy[34].life && !enemy[35].life) {
  957.             TileMap[13][49] = ' ';
  958.             TileMap[13][50] = ' ';
  959.             TileMap[13][51] = ' ';
  960.         }
  961.         else if (enemy[26].life && enemy[27].life && enemy[28].life && enemy[29].life && enemy[30].life &&
  962.             enemy[31].life && enemy[32].life && enemy[33].life && enemy[34].life && enemy[35].life) {
  963.             TileMap[13][49] = 'K';
  964.             TileMap[13][50] = 'K';
  965.             TileMap[13][51] = 'K';
  966.         }
  967.         if (!enemy[36].life && !enemy[37].life && !enemy[38].life && !enemy[39].life && !enemy[40].life &&
  968.             !enemy[41].life && !enemy[42].life && !enemy[43].life) {
  969.             TileMap[9][40] = ' ';
  970.             TileMap[9][41] = ' ';
  971.         }
  972.         else if (enemy[36].life && enemy[37].life && enemy[38].life && enemy[39].life && enemy[40].life &&
  973.             enemy[41].life && enemy[42].life && enemy[43].life) {
  974.             TileMap[9][40] = 'K';
  975.             TileMap[9][41] = 'K';
  976.         }
  977.         if (!enemy[44].life && !enemy[45].life && !enemy[46].life && !enemy[47].life &&
  978.             !enemy[48].life && !enemy[49].life && !enemy[50].life) {
  979.             TileMap[5][49] = ' ';
  980.             TileMap[5][50] = ' ';
  981.             TileMap[5][51] = ' ';
  982.         }
  983.         else if (enemy[44].life && enemy[45].life && enemy[46].life && enemy[47].life &&
  984.             enemy[48].life && enemy[49].life && enemy[50].life) {
  985.             TileMap[5][49] = 'K';
  986.             TileMap[5][50] = 'K';
  987.             TileMap[5][51] = 'K';
  988.         }
  989.         if (!enemy[53].life && !enemy[54].life && !enemy[55].life && !enemy[56].life && !enemy[57].life &&
  990.             !enemy[58].life && !enemy[59].life)
  991.             TileMap[1][51] = ' ';
  992.         else if (enemy[53].life && enemy[54].life && enemy[55].life && enemy[56].life && enemy[57].life &&
  993.             enemy[58].life && enemy[59].life)
  994.             TileMap[1][51] = 'K';
  995.  
  996.         if (boss.life) {
  997.             if (boss.rect.left < player.rect.left) {
  998.                 boss.sprite.setTextureRect(IntRect(0, 0, 102, 51));
  999.                 boss.rig = true;
  1000.             }
  1001.             else if (boss.rect.left > player.rect.left) {
  1002.                 boss.sprite.setTextureRect(IntRect(102, 0, -102, 51));
  1003.                 boss.rig = false;
  1004.             }
  1005.  
  1006.             if (boss.rect.top > player.rect.top && boss.rect.top < player.rect.top + player.rect.height &&
  1007.                 bulletBos.go == 0 && currentLevel == 5) {
  1008.                 if (boss.rig)
  1009.                     bulletBos.go = 1;
  1010.                 else
  1011.                     bulletBos.go = 2;
  1012.             }
  1013.  
  1014.             if (bulletBos.go == 0) {
  1015.                 if (boss.rig) {
  1016.                     bulletBos.rect.left = boss.rect.left + 153;
  1017.                     bulletBos.rect.top = boss.rect.top;
  1018.                 }
  1019.                 else if (!boss.rig) {
  1020.                     bulletBos.rect.left = boss.rect.left;
  1021.                     bulletBos.rect.top = boss.rect.top;
  1022.                 }
  1023.             }
  1024.             else if (bulletBos.go == 1)
  1025.                 bulletBos.speedX = 1;
  1026.             else if (bulletBos.go == 2)
  1027.                 bulletBos.speedX = -1;
  1028.  
  1029.             if (boss.rect.left < bullet.rect.left && boss.rect.left + 153 > bullet.rect.left && boss.life &&
  1030.                 boss.rect.top < bullet.rect.top && boss.rect.top + 77 > bullet.rect.top && bullet.go != 0) {
  1031.                 sound.dieenemy.play();
  1032.  
  1033.                 boss.numOfLife--;
  1034.  
  1035.                 bullet.go = 0;
  1036.             }
  1037.  
  1038.             if (player.rect.intersects(boss.rect) && !player.damage) {
  1039.                 sound.dieman.play();
  1040.  
  1041.                 player.speedY = -0.5;
  1042.                 player.numOfLife--;
  1043.  
  1044.                 player.damage = true;
  1045.  
  1046.                 bossdam = 1;
  1047.             }
  1048.  
  1049.             if (player.rect.left < bulletBos.rect.left && player.rect.left + 77 > bulletBos.rect.left && player.life && !player.damage &&
  1050.                 player.rect.top < bulletBos.rect.top && player.rect.top + 65 > bulletBos.rect.top && bulletBos.go != 0) {
  1051.                 sound.dieman.play();
  1052.  
  1053.                 player.numOfLife--;
  1054.                 player.damage = true;
  1055.  
  1056.                 bossdam = 1;
  1057.             }
  1058.         }
  1059.  
  1060.         for (int i = 0; i < numOfEnemy; i++)
  1061.             if (enemy[i].life) {
  1062.                 if (enemy[i].rect.left < bullet.rect.left && enemy[i].rect.left + 10 > bullet.rect.left &&
  1063.                     enemy[i].rect.top < bullet.rect.top && enemy[i].rect.top + 50 > bullet.rect.top && bullet.go != 0) {
  1064.                     sound.dieenemy.play();
  1065.  
  1066.                     enemy[i].life = false;
  1067.  
  1068.                     bullet.go = 0;
  1069.                 }
  1070.  
  1071.                 if (player.rect.intersects(enemy[i].rect) && !player.damage) {
  1072.                     sound.dieman.play();
  1073.  
  1074.                     player.numOfLife--;
  1075.  
  1076.                     player.speedY = -0.5;
  1077.                     player.damage = true;
  1078.  
  1079.                     if (i == 0)
  1080.                         enemydam = 1;
  1081.                     else if (i >= 1 && i < 4)
  1082.                         enemydam = 2;
  1083.                     else if (i >= 4 && i < 9)
  1084.                         enemydam = 3;
  1085.                     else if (i >= 9 && i < 16)
  1086.                         enemydam = 4;
  1087.                     else if (i >= 16 && i < 26)
  1088.                         enemydam = 5;
  1089.                     else if (i >= 26 && i < 36)
  1090.                         enemydam = 6;
  1091.                     else if (i >= 36 && i < 44)
  1092.                         enemydam = 7;
  1093.                     else if (i >= 44 && i < 53)
  1094.                         enemydam = 8;
  1095.                     else if (i >= 53 && i < 60)
  1096.                         enemydam = 9;
  1097.                 }
  1098.             }
  1099.  
  1100.         if (player.damage) {
  1101.             player.damFrame += 0.006;
  1102.  
  1103.             switch (int(player.damFrame))
  1104.             {
  1105.             case 1:
  1106.                 if (player.rig)
  1107.                     player.sprite.setTextureRect(IntRect(229, 72, 72, 65));
  1108.                 else
  1109.                     player.sprite.setTextureRect(IntRect(301, 72, -72, 65));
  1110.                 break;
  1111.             case 2:
  1112.                 if (player.rig)
  1113.                     player.sprite.setTextureRect(IntRect(308, 95, 76, 34));
  1114.                 else
  1115.                     player.sprite.setTextureRect(IntRect(384, 95, -76, 34));
  1116.                 break;
  1117.             case 3:
  1118.                 if (player.rig)
  1119.                     player.sprite.setTextureRect(IntRect(391, 101, 80, 31));
  1120.                 else
  1121.                     player.sprite.setTextureRect(IntRect(471, 101, -80, 31));
  1122.                 break;
  1123.             case 4:
  1124.                 if (player.numOfLife > 0) {
  1125.                     if (enemydam != 0)
  1126.                         switch (enemydam)
  1127.                         {
  1128.                         case 1:
  1129.                             player.rect.left = 931.7;
  1130.                             player.rect.top = 942.5;
  1131.                             break;
  1132.                         case 2:
  1133.                             player.rect.left = 1312.52;
  1134.                             player.rect.top = 172.5;
  1135.                             break;
  1136.                         case 3:
  1137.                             player.rect.left = 2093.68;
  1138.                             player.rect.top = 172.5;
  1139.                             break;
  1140.                         case 4:
  1141.                             player.rect.left = 2933.7;
  1142.                             player.rect.top = 480.5;
  1143.                             break;
  1144.                         case 5:
  1145.                             player.rect.left = 2775.62;
  1146.                             player.rect.top = 1173.5;
  1147.                             break;
  1148.                         case 6:
  1149.                             player.rect.left = 3176.79;
  1150.                             player.rect.top = 1173.5;
  1151.                             break;
  1152.                         case 7:
  1153.                             player.rect.left = 3615.72;
  1154.                             player.rect.top = 865.5;
  1155.                             break;
  1156.                         case 8:
  1157.                             player.rect.left = 3330.41;
  1158.                             player.rect.top = 557.5;
  1159.                             break;
  1160.                         case 9:
  1161.                             player.rect.left = 3309.64;
  1162.                             player.rect.top = 95.5;
  1163.                             break;
  1164.                         }
  1165.                     else if (player.blockdam != 0)
  1166.                         switch (player.blockdam)
  1167.                         {
  1168.                         case 1:
  1169.                             player.rect.left = 931.7;
  1170.                             player.rect.top = 942.5;
  1171.                             break;
  1172.                         case 2:
  1173.                             player.rect.left = 584.22;
  1174.                             player.rect.top = 711.5;
  1175.                             break;
  1176.                         case 3:
  1177.                             player.rect.left = 1362.86;
  1178.                             player.rect.top = 711.5;
  1179.                             break;
  1180.                         case 4:
  1181.                             player.rect.left = 2173.41;
  1182.                             player.rect.top = 865.5;
  1183.                             break;
  1184.                         case 5:
  1185.                             player.rect.left = 3626.1;
  1186.                             player.rect.top = 865.5;
  1187.                             break;
  1188.                         case 6:
  1189.                             player.rect.left = 3311.82;
  1190.                             player.rect.top = 557.5;
  1191.                             break;
  1192.                         case 7:
  1193.                             player.rect.left = 4081;
  1194.                             player.rect.top = 172.5;
  1195.                             offsetY = 0;
  1196.                             break;
  1197.                         }
  1198.                     else if (bossdam == 1) {
  1199.                         player.rect.left = 4081;
  1200.                         player.rect.top = 172.5;
  1201.                         offsetY = 0;
  1202.                     }
  1203.  
  1204.                     if (player.rig)
  1205.                         player.sprite.setTextureRect(IntRect(0, 0, 77, 65));
  1206.                     else if (!player.rig)
  1207.                         player.sprite.setTextureRect(IntRect(77, 0, -77, 65));
  1208.  
  1209.                     enemydam = 0;
  1210.                     player.blockdam = 0;
  1211.                     bossdam = 0;
  1212.  
  1213.                     player.damage = false;
  1214.                     player.damFrame = 0;
  1215.                 }
  1216.                 break;
  1217.             }
  1218.         }
  1219.  
  1220.         score.setTextureRect(IntRect(27 * (currentLevel - 1), 0, 27, 36));
  1221.  
  1222.         if (player.rect.left > 500 && player.rect.left < 4582)
  1223.             offsetX = player.rect.left - 500;
  1224.         if (player.rect.top > 250 && player.rect.top < 1135)
  1225.             offsetY = player.rect.top - 250;
  1226.  
  1227.         player.update(time);
  1228.         bullet.update(time);
  1229.         for (int i = 0; i < numOfEnemy; i++)
  1230.             enemy[i].update(time);
  1231.         boss.update(time);
  1232.         bulletBos.update(time);
  1233.         window.clear(Color::White);
  1234.  
  1235.         background.setPosition(-offsetX, -offsetY);
  1236.         window.draw(background);
  1237.  
  1238.         for (int i = 0; i < height; i++)
  1239.             for (int j = 0; j < width; j++) {
  1240.                 if (TileMap[i][j] == 'A')
  1241.                     plat.setTextureRect(IntRect(0, 0, tileSize, tileSize));
  1242.                 if (TileMap[i][j] == 'B')
  1243.                     plat.setTextureRect(IntRect(tileSize, 0, tileSize, tileSize));
  1244.                 if (TileMap[i][j] == 'C')
  1245.                     plat.setTextureRect(IntRect(tileSize * 2, 0, tileSize, tileSize));
  1246.                 if (TileMap[i][j] == 'X')
  1247.                     plat.setTextureRect(IntRect(tileSize * 3, 0, tileSize, tileSize));
  1248.                 if (TileMap[i][j] == 'F')
  1249.                     plat.setTextureRect(IntRect(tileSize * 4, 0, tileSize, tileSize));
  1250.                 if (TileMap[i][j] == '2')
  1251.                     plat.setTextureRect(IntRect(0, tileSize, tileSize, tileSize));
  1252.                 if (TileMap[i][j] == '3')
  1253.                     plat.setTextureRect(IntRect(tileSize, tileSize, tileSize, tileSize));
  1254.                 if (TileMap[i][j] == '4')
  1255.                     plat.setTextureRect(IntRect(tileSize * 2, tileSize, tileSize, tileSize));
  1256.                 if (TileMap[i][j] == '5')
  1257.                     plat.setTextureRect(IntRect(tileSize * 3, tileSize, tileSize, tileSize));
  1258.                 if (TileMap[i][j] == 'K')
  1259.                     plat.setTextureRect(IntRect(tileSize * 4, 0, tileSize, tileSize));
  1260.                 if (TileMap[i][j] == ' ')
  1261.                     continue;
  1262.  
  1263.                 plat.setPosition(j * tileSize - offsetX, i * tileSize - offsetY);
  1264.                 window.draw(plat);
  1265.             }
  1266.  
  1267.         window.draw(player.sprite);
  1268.         if (bullet.go != 0)
  1269.             window.draw(bullet.sprite);
  1270.         for (int i = 0; i < numOfEnemy; i++)
  1271.             window.draw(enemy[i].sprite);
  1272.         window.draw(boss.sprite);
  1273.         if (bulletBos.go != 0)
  1274.             window.draw(bulletBos.sprite);
  1275.  
  1276.         if (play || isWin || isDie || isPause) {
  1277.             for (int i = 0; i < player.numOfLife; i++)
  1278.                 window.draw(life[i]);
  1279.             for (int i = 0; i < boss.numOfLife; i++)
  1280.                 if (currentLevel == 5)
  1281.                     window.draw(lifeBoss[i]);
  1282.             window.draw(lvl);
  1283.             window.draw(score);
  1284.  
  1285.             if (isWin || isDie || isPause) {
  1286.                 if (isWin && !isDie && !isPause) {
  1287.                     if (currentLevel < 5)
  1288.                         window.draw(urpro);
  1289.                     else
  1290.                         window.draw(win);
  1291.                 }
  1292.                 else if (!isWin && isDie && !isPause)
  1293.                     window.draw(ki);
  1294.                 else if (!isWin && !isDie && isPause)
  1295.                     window.draw(nadpause);
  1296.  
  1297.                 if (currentLevel < 5 && !isDie && !isPause)
  1298.                     window.draw(sledur);
  1299.                 else if (isPause)
  1300.                     window.draw(nadprod);
  1301.  
  1302.                 window.draw(naczan);
  1303.                 window.draw(butmen);
  1304.             }
  1305.         }
  1306.  
  1307.         if (isMenu) {
  1308.             window.draw(naz);
  1309.             window.draw(butplay);
  1310.             window.draw(exit);
  1311.         }
  1312.  
  1313.         if (game) {
  1314.             window.draw(nazurav);
  1315.             for (int i = 0; i < 5; i++)
  1316.                 window.draw(butlev[i]);
  1317.             window.draw(back);
  1318.         }
  1319.  
  1320.         window.display();
  1321.     }
  1322.  
  1323.     return 0;
  1324. }
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330. class SetMenu {
  1331. public:
  1332.     bool pusklever[5], blv[5];
  1333.  
  1334.     SetMenu() {
  1335.         for (int i = 0; i < 5; i++)
  1336.             pusklever[i] = false;
  1337.  
  1338.         blv[0] = true;
  1339.         for (int i = 1; i < 5; i++)
  1340.             blv[i] = false;
  1341.     }
  1342. };
  1343.  
  1344.  
  1345.  
  1346.  
  1347. #include <SFML/Audio.hpp>
  1348. using namespace sf;
  1349. class SetSound {
  1350. public:
  1351.     SoundBuffer s1, s2, s3, s4, s5, s6, s7;
  1352.     Sound button, jump, shooting, bonus, dieenemy, dieman, win;
  1353.     Music music[2];
  1354.  
  1355.     SetSound() {
  1356.         s1.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/button.ogg");
  1357.         s2.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/jump.ogg");
  1358.         s3.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/shooting.ogg");
  1359.         s4.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/bonus.ogg");
  1360.         s5.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/dieenemy.ogg");
  1361.         s6.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/dieman.ogg");
  1362.         s7.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/win.ogg");
  1363.  
  1364.         button.setBuffer(s1);
  1365.         jump.setBuffer(s2);
  1366.         shooting.setBuffer(s3);
  1367.         bonus.setBuffer(s4);
  1368.         dieenemy.setBuffer(s5);
  1369.         dieman.setBuffer(s6);
  1370.         win.setBuffer(s7);
  1371.  
  1372.         music[0].openFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/Game.ogg");
  1373.         music[1].openFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/Play.ogg");
  1374.         for (int i = 0; i < 2; i++) {
  1375.             music[i].setVolume(25);
  1376.             music[i].setLoop(true);
  1377.         }
  1378.     }
  1379. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement