Advertisement
Astaa001

MultiPlayer_Mode

Apr 29th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 24.59 KB | None | 0 0
  1. #include <SFML/Graphics.hpp>
  2. #include<SFML/Audio.hpp>
  3. #include<bits/stdc++.h>
  4. #include<time.h>
  5. #define ll long long
  6.  
  7.  
  8.  
  9. using namespace sf;
  10. using namespace std;
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19. //////////////////////////////////////////////////////////
  20.  
  21. /*
  22. #define MAX_NUMBER_OF_ITEMS 4
  23. int selectedItemIndex = 0;
  24. Font font; Text menu[MAX_NUMBER_OF_ITEMS];
  25. void setmenustatus(float width, float height) {
  26.     if (!font.loadFromFile("arial.ttf"))
  27.     {
  28.         // handle error
  29.         cout << "SHIIIIT" << endl;
  30.     }
  31.  
  32.     for (int i = 0; i < MAX_NUMBER_OF_ITEMS; i++)
  33.     {
  34.         menu[i].setFont(font);
  35.         if (i == 0) {
  36.             menu[i].setFillColor(Color::Red);
  37.             menu[i].setString("Play");
  38.             menu[i].setPosition(sf::Vector2f(width / 2, height / (MAX_NUMBER_OF_ITEMS + 1) * 1));
  39.         }
  40.         else if (i == 1) {
  41.             menu[i].setFillColor(Color::White);
  42.             menu[i].setString("About Us");
  43.             menu[i].setPosition(sf::Vector2f(width / 2, height / (MAX_NUMBER_OF_ITEMS + 1) * 2));
  44.  
  45.         }
  46.         else
  47.         {
  48.             menu[2].setFillColor(Color::White);
  49.             menu[2].setString("Exit");
  50.             menu[2].setPosition(sf::Vector2f(width / 2, height / (MAX_NUMBER_OF_ITEMS + 1) * 3));
  51.         }
  52.  
  53.     }
  54.  
  55. }*/
  56. const int speed =1;
  57. #define MAX_NUMBER_OF_ITEMS 4
  58. int selectedItemIndex = 0;
  59. Font font; Text menu[MAX_NUMBER_OF_ITEMS];
  60. void setmenustatus(float width, float height) {
  61.     if (!font.loadFromFile("Chocolate Bar Demo.otf"))
  62.     {
  63.         // handle error
  64.         cout << "SHIIIIT" << endl;
  65.     }
  66.  
  67.     for (int i = 0; i < MAX_NUMBER_OF_ITEMS; i++)
  68.     {
  69.         menu[i].setFont(font);
  70.         if (i == 0) {
  71.             menu[i].setFillColor(Color::Red);
  72.             menu[i].setString("Play");
  73.             menu[i].setPosition(sf::Vector2f(width / 2.25, height / (MAX_NUMBER_OF_ITEMS + 1) * 2.35));
  74.         }
  75.         else if (i == 1) {
  76.             menu[i].setFillColor(Color::White);
  77.             menu[i].setString("Multiplayer");
  78.             menu[i].setPosition(sf::Vector2f(width / 2.5, height / (MAX_NUMBER_OF_ITEMS + 1) * 3.1));
  79.  
  80.         }
  81.         else if (i == 2)
  82.         {
  83.             menu[i].setFillColor(Color::White);
  84.             menu[i].setString("About us");
  85.             menu[i].setPosition(sf::Vector2f(width / 2.4, height / (MAX_NUMBER_OF_ITEMS + 1) * 3.75));
  86.         }
  87.         else
  88.             menu[3].setFillColor(Color::White);
  89.         menu[3].setString("Exit");
  90.         menu[3].setPosition(sf::Vector2f(width / 2.25, height / (MAX_NUMBER_OF_ITEMS + 1) * 4.5));
  91.  
  92.     }
  93. }
  94. void drawmenu(RenderWindow &window)
  95. {
  96.     for (int i = 0; i < MAX_NUMBER_OF_ITEMS; i++)
  97.     {
  98.         window.draw(menu[i]);
  99.     }
  100. }
  101.  
  102. void MoveUp()
  103. {
  104.     if (selectedItemIndex - 1 >= 0)
  105.     {
  106.         menu[selectedItemIndex].setFillColor(Color::White);
  107.         selectedItemIndex--;
  108.         menu[selectedItemIndex].setFillColor(Color::Red);
  109.     }
  110. }
  111.  
  112. void MoveDown()
  113. {
  114.     if (selectedItemIndex + 1 < MAX_NUMBER_OF_ITEMS)
  115.     {
  116.         menu[selectedItemIndex].setFillColor(Color::White);
  117.         selectedItemIndex++;
  118.         menu[selectedItemIndex].setFillColor(Color::Red);
  119.     }
  120. }
  121.  
  122. int GetPressedItem() {
  123.     return selectedItemIndex;
  124. }
  125.  
  126.  
  127. int GetXindx (float a)
  128. {
  129.     return (a-183)/53 +2;
  130. }
  131.  
  132.  
  133. int GetYindx (float a)
  134. {
  135.     return (a-74)/48 +2;
  136. }
  137.  
  138.  
  139.  
  140. struct Player
  141. {
  142.  float position=0;           // Variables of Player
  143.  //const float speed=2;
  144.  Texture text ;
  145.  Sprite sprt ;
  146.  int Xindx , Yindx , Xpos , Ypos;
  147.  int life , range , bomb;
  148. };
  149.  
  150. void destroy_breakable_walls (int Xindx , int Yindx , Sprite Grid[][10] , Texture &ground , Texture &ground2  )
  151. {
  152.  
  153.                                     if (Xindx%2==Yindx%2) {Grid[Xindx][Yindx].setTexture(ground);}
  154.                                     else {Grid[Xindx][Yindx].setTexture(ground2);}
  155.  
  156.                                     Grid[Xindx][Yindx].setPosition((Xindx+2)*53,(Yindx+0.8)*48);
  157.                                     Grid[Xindx][Yindx].setScale(0.1009,0.101);
  158.  
  159.  
  160. }
  161. void loadImageToCharacter (struct Player &P , string s )
  162. {
  163.     P.text.loadFromFile(s);
  164.     P.sprt.setTexture(P.text);
  165. }
  166.  
  167.  
  168.  
  169.  
  170. void loadImageToTexture (Texture &txt , string s)
  171. {
  172.  
  173.     if(!txt.loadFromFile(s)) {cout<<"error loading "<<s<<endl;}
  174.  
  175. }
  176.  
  177.  
  178.  
  179. void Multiplayer ()
  180. {
  181.  
  182.     Font dis_time;
  183.     if (!dis_time.loadFromFile("Chocolate Bar Demo.otf"))
  184. {
  185.     cout<<"error font";
  186. }
  187.  
  188.  
  189.     int display_timer;
  190.     Clock c,timer_clock;
  191.     Time times,timer;
  192.  
  193.     Texture wall,ground,wallpaper,ground2,breakable , zone_warning_text , hurt ;
  194. Texture death;
  195.  Sprite Death;
  196.     loadImageToTexture(death,"death.png");
  197.     Death.setTexture(death);
  198.     Music lost;
  199.    lost.openFromFile("Blonde_Redhead_-_For_the_Damaged_Coda-4Js-XbNj6Tk.wav");
  200.  
  201.  
  202.     Sprite zone_warning_sprt ,Hurt;
  203.     loadImageToTexture(zone_warning_text,"Zone  .png") ;
  204.     zone_warning_sprt.setTexture(zone_warning_text) ;
  205.     zone_warning_sprt.setScale(0.5,0.5);
  206.     zone_warning_sprt.setPosition(440,520);
  207.     int zone_limit=1;
  208.     loadImageToTexture(breakable,"42482223-490e-49bb-b83d-874397d4fd47.png");
  209.  
  210.     loadImageToTexture(hurt,"hurt.png");
  211.     Hurt.setTexture(hurt);
  212.     loadImageToTexture(wallpaper,"b0465160-5fa4-4de9-a876-2e95d50359c9.jpg");
  213.  
  214.  
  215.  
  216.     loadImageToTexture(wall,"3d wall.png");
  217.  
  218.  
  219.     loadImageToTexture(ground,"ground 1.png");
  220.  
  221.  
  222.     loadImageToTexture(ground2,"grass.png");
  223.  
  224.     Sprite lifeS , rangeS , bombS , Wallpaper;
  225.  
  226.     Wallpaper.setTexture(wallpaper);
  227.  
  228.  
  229. // Distribution of wall & ground on the Grid
  230.  
  231.     const int length=9 , width=17;
  232.  
  233.     Sprite Grid[width+1][length+1];
  234.  
  235. for (int i=1;i<=width;i++)
  236.     {
  237.         for (int j=1;j<=length;j++)
  238.         {
  239.             if (i%2!=0&&j%2!=0)
  240.             {
  241.  
  242.                 Grid[i][j].setTexture(wall);
  243.                 Grid[i][j].setPosition((i+1.97)*53,(j+0.255)*48);
  244.                 Grid[i][j].setScale(Vector2f(0.1009,0.165));
  245.  
  246.             }
  247.  
  248.            else if(i==1||i==width)
  249.             {
  250.                 Grid[i][j].setTexture(wall);
  251.                 Grid[i][j].setPosition((i+1.97)*53,(j+0.255)*48);
  252.                 Grid[i][j].setScale(Vector2f(0.1009,0.165));
  253.             }
  254.             else if (j==1||j==length)
  255.             {
  256.                 Grid[i][j].setTexture(wall);
  257.                 Grid[i][j].setPosition((i+1.97)*53,(j+0.255)*48);
  258.                 Grid[i][j].setScale(Vector2f(0.1009,0.165));
  259.             }
  260.             else
  261.             {
  262.                 if (i%2==j%2) {Grid[i][j].setTexture(ground);}
  263.                 else {Grid[i][j].setTexture(ground2);}
  264.             Grid[i][j].setPosition((i+2)*53,(j+0.8)*48);
  265.                 Grid[i][j].setScale(0.1009,0.101);
  266.             }
  267.         }
  268.     }
  269.     for(int i=1;i<=30;i++)
  270.     {
  271.         int x=rand()%14+2,y=rand()%7+2;
  272.         if (x%2!=0&&y%2!=0)
  273.         {
  274.             x++;
  275.         }
  276.         Grid[x][y].setTexture(breakable);
  277.         Grid[x][y].setPosition((x+1.97)*53,(y+0.255)*48);
  278.         Grid[x][y].setScale(Vector2f(0.1009,0.165));
  279.     }
  280.  
  281.  
  282.  Player player1,player2;
  283.  loadImageToCharacter(player1 , "mage walking poses sheet BBcopy.png");
  284.  loadImageToCharacter(player2 , "mage walking poses sheet copyRR.png");
  285.  
  286.  
  287. // Intial Position
  288.     const int StartingPos1X =200 , StartingPos1Y =200 , StartingPos2X =600 , StartingPos2Y =356;
  289.     player1.sprt.setPosition(StartingPos1X,StartingPos1Y);
  290.     player2.sprt.setPosition(StartingPos2X,StartingPos2Y);
  291.  
  292.     Vector2u text_size1=player1.text.getSize() , text_size2=player2.text.getSize();
  293.  
  294.     text_size1.x/=9;
  295.     text_size1.y/=4;
  296.     text_size2.x/=9;
  297.     text_size2.y/=4;
  298.  
  299.     player1.sprt.setTextureRect(IntRect(text_size1.x*0,text_size1.y*2,text_size1.x,text_size1.y));
  300.     player2.sprt.setTextureRect(IntRect(text_size2.x*0,text_size2.y*2,text_size2.x,text_size2.y));
  301.  
  302.  
  303.  
  304.  
  305.  
  306.     bool range_up=1, range_down=1, range_right=1, range_left=1 , ispressed=0,explosion=false;
  307.      Time times2,t,ti;
  308.  
  309.      Texture bombtext , exptext;
  310.       bombtext.loadFromFile("BOOM.png");
  311.     exptext.loadFromFile("exp.png");
  312.  
  313.     Clock clocks2,cs,clocks;
  314.  
  315.    Sprite bombing,exp;
  316.        bombing.setTexture(bombtext);
  317.     exp.setTexture(exptext);
  318.     Vector2u text_size_bomb=bombtext.getSize();
  319.     Vector2u text_size_exp=exptext.getSize();
  320.    text_size_bomb.y/=4;
  321.     text_size_exp.x/=3;
  322.     text_size_exp.y/=3;
  323.    bombing.setScale(0.2f,0.2f);
  324.     exp.setScale(0.25,0.25);
  325. int pos_x=1,pos_y=0,pos=0;
  326.  
  327.  Time music_time;
  328.     Clock music_clock;
  329.  
  330.    int death_music_duration=0;
  331.  
  332.      bool death_flag=0;
  333.       //Game Window
  334.     RenderWindow window( VideoMode(1280, 768), "our first try with SFML");
  335.     while (window.isOpen())
  336.    {
  337.  
  338.  
  339.  
  340.     Event event;
  341.     while (window.pollEvent(event))
  342.     {
  343.         if (event.type == sf::Event::Closed ||Keyboard::isKeyPressed(Keyboard::Enter) )
  344.             window.close();
  345.     }
  346.  
  347.  
  348. if (Keyboard::isKeyPressed(Keyboard::N))
  349. {death_flag=1;
  350.     music_clock.restart();
  351.     lost.play();
  352. }
  353.  
  354.    music_time=music_clock.getElapsedTime();
  355.     death_music_duration=music_time.asSeconds();
  356.  
  357.  
  358.  
  359.  
  360. // Timer
  361. Text txt;
  362.    timer=timer_clock.getElapsedTime();
  363.     display_timer=timer.asSeconds();
  364.     string s1,s2;
  365.     //int  minu=display_timer/60;
  366.     s1=to_string( 30 - (display_timer)  );
  367.     //s2=to_string(1-minu);
  368.     //s2+=" : ";
  369.     //s2+=s1;
  370.  
  371. txt.setFont(dis_time);
  372.     txt.setString("0:"+s1);
  373.     txt.setPosition(512,22);
  374.  
  375.  
  376.         if (display_timer>=30)
  377.         {
  378.             timer_clock.restart();
  379.  
  380.  
  381.             for (int j=2;j<length;j++)
  382.             {
  383.                 Grid[zone_limit+1][j].setTexture(wall);
  384.  
  385.                 Grid[width-zone_limit][j].setTexture(wall);
  386.  
  387.                 Grid[zone_limit+1][j].setPosition((zone_limit+1+1.97)*53,(j+0.255)*48 );
  388.  
  389.                 if((GetXindx(player1.sprt.getPosition().x))==zone_limit+1){
  390.                     death_flag=1;
  391.                     music_clock.restart();
  392.                     lost.play();
  393.                 }
  394.  
  395.                  if((GetXindx(player2.sprt.getPosition().x))==zone_limit+1){
  396.                     death_flag=1;
  397.                     music_clock.restart();
  398.                     lost.play();
  399.                 }
  400.  
  401.                 Grid[width-zone_limit][j].setPosition((width-zone_limit+1.97)*53,(j+0.255)*48 );
  402.  
  403.                 Grid[zone_limit+1][j].setScale(Vector2f(0.1009,0.165));
  404.  
  405.                 Grid[width-zone_limit][j].setScale(Vector2f(0.1009,0.165));
  406.  
  407.  
  408.  
  409.              if((GetXindx(player1.sprt.getPosition().x))==width-zone_limit){
  410.                     death_flag=1;
  411.                     music_clock.restart();
  412.                     lost.play();
  413.  
  414.                 }
  415.  
  416.                  if((GetXindx(player2.sprt.getPosition().x))==width-zone_limit){
  417.                     death_flag=1;
  418.                     music_clock.restart();
  419.                     lost.play();
  420.  
  421.                 }
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.             }
  429.        zone_limit++; }
  430.  
  431.  
  432.  
  433.  
  434.  
  435.     // Player 1 Movement
  436.  
  437.     if(Keyboard::isKeyPressed(Keyboard::Key::Right) && (Grid[GetXindx(player1.sprt.getPosition().x+12)][GetYindx(player1.sprt.getPosition().y)].getTexture() == & ground || Grid[GetXindx(player1.sprt.getPosition().x+12)][GetYindx(player1.sprt.getPosition().y)].getTexture() == & ground2))      // Moving Right
  438.             {
  439.                 player1.sprt.move(speed,0.0);
  440.                 times=c.getElapsedTime();
  441.                 if(times.asSeconds()>=0.1){
  442.                     c.restart();
  443.                     player1.position++;
  444.                     if(player1.position>8)
  445.                         player1.position-=8;
  446.                 }
  447.                 player1.sprt.setTextureRect(IntRect(text_size1.x*player1.position,text_size1.y*3,text_size1.x,text_size1.y));
  448.             }
  449.  
  450.         else if(Keyboard::isKeyPressed(Keyboard::Key::Left) && (Grid[GetXindx(player1.sprt.getPosition().x-12)][GetYindx(player1.sprt.getPosition().y)].getTexture() == &ground || Grid[GetXindx(player1.sprt.getPosition().x-12)][GetYindx(player1.sprt.getPosition().y)].getTexture() == &ground2 ) )         // Moving Left
  451.             {
  452.                 player1.sprt.move(-speed ,0.0);
  453.                 times=c.getElapsedTime();
  454.                 if(times.asSeconds()>=0.1){
  455.                     c.restart();
  456.                     player1.position++;
  457.                     if(player1.position>8)
  458.                         player1.position-=8;
  459.                 }
  460.                 player1.sprt.setTextureRect(IntRect(text_size1.x*player1.position,text_size1.y*1,text_size1.x,text_size1.y));
  461.             }
  462.         else if(Keyboard::isKeyPressed(Keyboard::Key::Up) && (Grid[GetXindx(player1.sprt.getPosition().x)][GetYindx(player1.sprt.getPosition().y-7)].getTexture() == &ground || Grid[GetXindx(player1.sprt.getPosition().x)][GetYindx(player1.sprt.getPosition().y-7)].getTexture() == &ground2 ))           // Moving Up
  463.         {
  464.                 player1.sprt.move(0.0,-speed);
  465.  
  466.                 times=c.getElapsedTime();
  467.                 if(times.asSeconds()>=0.1){
  468.                     c.restart();
  469.                     player1.position++;
  470.                     if(player1.position>8)
  471.                         player1.position-=8;
  472.                 }
  473.                 player1.sprt.setTextureRect(IntRect(text_size1.x*player1.position,text_size1.y*0,text_size1.x,text_size1.y));
  474.         }
  475.         else if(Keyboard::isKeyPressed(Keyboard::Key::Down)  && (Grid[GetXindx(player1.sprt.getPosition().x)][GetYindx(player1.sprt.getPosition().y+7)].getTexture() == &ground || Grid[GetXindx(player1.sprt.getPosition().x)][GetYindx(player1.sprt.getPosition().y+7)].getTexture() == &ground2 ))         // Moving Down
  476.         {
  477.                 player1.sprt.move(0.0,speed);
  478.                 times=c.getElapsedTime();
  479.                 if(times.asSeconds()>=0.1){
  480.                     c.restart();
  481.                     player1.position++;
  482.                     if(player1.position>8)
  483.                         player1.position-=8;
  484.                 }
  485.                 player1.sprt.setTextureRect(IntRect(text_size1.x*player1.position,text_size1.y*2,text_size1.x,text_size1.y));
  486.     }
  487.  
  488.         // Player 2 Movement
  489.     if(Keyboard::isKeyPressed(Keyboard::Key::D) && (Grid[GetXindx(player2.sprt.getPosition().x+12)][GetYindx(player2.sprt.getPosition().y)].getTexture() == & ground || Grid[GetXindx(player2.sprt.getPosition().x+12)][GetYindx(player2.sprt.getPosition().y)].getTexture() == & ground2))      // Moving Right
  490.             {
  491.                 player2.sprt.move(speed,0.0);
  492.                 times=c.getElapsedTime();
  493.                 if(times.asSeconds()>=0.1){
  494.                     c.restart();
  495.                     player2.position++;
  496.                     if(player2.position>8)
  497.                         player2.position-=8;
  498.                 }
  499.                 player2.sprt.setTextureRect(IntRect(text_size2.x*player2.position,text_size2.y*3,text_size2.x,text_size2.y));
  500.             }
  501.  
  502.         else if(Keyboard::isKeyPressed(Keyboard::Key::A) && (Grid[GetXindx(player2.sprt.getPosition().x-12)][GetYindx(player2.sprt.getPosition().y)].getTexture() == &ground || Grid[GetXindx(player2.sprt.getPosition().x-12)][GetYindx(player2.sprt.getPosition().y)].getTexture() == &ground2 ) )         // Moving Left
  503.             {
  504.                 player2.sprt.move(-speed ,0.0);
  505.                 times=c.getElapsedTime();
  506.                 if(times.asSeconds()>=0.1){
  507.                     c.restart();
  508.                     player2.position++;
  509.                     if(player2.position>8)
  510.                         player2.position-=8;
  511.                 }
  512.                 player2.sprt.setTextureRect(IntRect(text_size2.x*player2.position,text_size2.y*1,text_size2.x,text_size2.y));
  513.  
  514.             }
  515.         else if(Keyboard::isKeyPressed(Keyboard::Key::W) && (Grid[GetXindx(player2.sprt.getPosition().x)][GetYindx(player2.sprt.getPosition().y-7)].getTexture() == &ground || Grid[GetXindx(player2.sprt.getPosition().x)][GetYindx(player2.sprt.getPosition().y-7)].getTexture() == &ground2 ))           // Moving Up
  516.         {
  517.                 player2.sprt.move(0.0,-speed);
  518.  
  519.                 times=c.getElapsedTime();
  520.                 if(times.asSeconds()>=0.1){
  521.                     c.restart();
  522.                     player2.position++;
  523.                     if(player2.position>8)
  524.                         player2.position-=8;
  525.                 }
  526.                 player2.sprt.setTextureRect(IntRect(text_size2.x*player2.position,text_size2.y*0,text_size2.x,text_size2.y));
  527.         }
  528.         else if(Keyboard::isKeyPressed(Keyboard::Key::S)  && (Grid[GetXindx(player2.sprt.getPosition().x)][GetYindx(player2.sprt.getPosition().y+7)].getTexture() == &ground || Grid[GetXindx(player2.sprt.getPosition().x)][GetYindx(player2.sprt.getPosition().y+7)].getTexture() == &ground2 ))         // Moving Down
  529.         {
  530.                 player2.sprt.move(0.0,speed);
  531.                 times=c.getElapsedTime();
  532.                 if(times.asSeconds()>=0.1){
  533.                     c.restart();
  534.                     player2.position++;
  535.                     if(player2.position>8)
  536.                         player2.position-=8;
  537.                 }
  538.                 player2.sprt.setTextureRect(IntRect(text_size2.x*player2.position,text_size2.y*2,text_size2.x,text_size2.y));
  539.  
  540.     }
  541.  
  542.       // bombing
  543.      if(Keyboard::isKeyPressed(Keyboard::Key::Space)){
  544.           ispressed=1;
  545.            player1.Xpos=player1.sprt.getPosition().x,player1.Ypos=player1.sprt.getPosition().y;
  546.                     player1.Xindx=GetXindx(player1.Xpos),player1.Yindx=GetYindx(player1.Ypos);
  547.      }
  548.        if(ispressed){
  549.          times=clocks.getElapsedTime();
  550.          t=c.getElapsedTime();
  551.          if(t.asSeconds()>=0.2){
  552.              c.restart();
  553.              bombing.setPosition(player1.Xpos,player1.Ypos);
  554.              bombing.setTextureRect(IntRect(0,text_size_bomb.y*pos,text_size_bomb.x,text_size_bomb.y));
  555.              pos+=2;
  556.             if(pos>2)
  557.                 pos=0;
  558.             if(times.asSeconds()>=3)
  559.                 explosion=1,bombing.setColor(Color::Transparent);
  560.          }
  561.         if(explosion){
  562.             ti=cs.getElapsedTime();
  563.             if(ti.asSeconds()>=0.2){
  564.                    cs.restart();
  565.                     exp.setPosition(player1.Xpos,player1.Ypos-15);
  566.                     exp.setTextureRect(IntRect(text_size_exp.x*pos_x,text_size_exp.y*pos_y,text_size_exp.x,text_size_exp.y));
  567.  
  568.  
  569.                         for (int x=1;x<=2;x++)
  570.                     {
  571.  
  572.                                 if((Grid[player1.Xindx][player1.Yindx+x].getTexture()==&breakable) && range_down)
  573.                                 {
  574.  
  575.                                     //Grid[player1.Xindx][player1.Yindx+x].setTexture(ground2);
  576.  
  577.                                         /*if (player1.Xindx%2==(player1.Yindx+x)%2) {Grid[player1.Xindx][player1.Yindx+x].setTexture(ground);}
  578.                                         else {Grid[player1.Xindx][player1.Yindx+x].setTexture(ground2);}
  579.                                         Grid[player1.Xindx][player1.Yindx+x].setPosition((player1.Xindx+2)*53,(player1.Yindx+x+0.8)*48);
  580.                                         Grid[player1.Xindx][player1.Yindx+x].setScale(0.1009,0.101);*/
  581.  
  582.                                         destroy_breakable_walls(player1.Xindx,player1.Yindx+x,Grid,ground,ground2);
  583.  
  584.                                     range_down=0;
  585.                                     break;
  586.                                 }
  587.  
  588.                                 else if (Grid[player1.Xindx][player1.Yindx+x].getTexture()==&wall)
  589.                                 {
  590.  
  591.                                     range_down=0;
  592.                                     break;
  593.                                 }
  594.                     }
  595.  
  596.                               for (int x=1;x<=2;x++)
  597.                     {
  598.  
  599.                                 if((Grid[player1.Xindx-x][player1.Yindx].getTexture()==&breakable) && range_left)
  600.                                 {
  601.                                     //Grid[player1.Xindx][player1.Yindx-x].setTexture(ground2);
  602.  
  603.  
  604.                                    /* if ((player1.Xindx-x)%2==(player1.Yindx)%2) {Grid[player1.Xindx-x][player1.Yindx].setTexture(ground);}
  605.                                     else {Grid[player1.Xindx-x][player1.Yindx].setTexture(ground2);}
  606.                                     Grid[player1.Xindx-x][player1.Yindx].setPosition((player1.Xindx-x+2)*53,(player1.Yindx+0.8)*48);
  607.                                     Grid[player1.Xindx-x][player1.Yindx].setScale(0.1009,0.101);*/
  608.  
  609.                                     destroy_breakable_walls(player1.Xindx-x,player1.Yindx,Grid,ground,ground2);
  610.  
  611.                                     range_left=0;
  612.                                     break;
  613.                                 }
  614.  
  615.                                 else if (Grid[player1.Xindx-x][player2.Yindx].getTexture()==&wall)
  616.                                 {
  617.  
  618.                                     range_left=0;
  619.                                     break;
  620.                                 }
  621.                     }
  622.  
  623.                               for (int x=1;x<=2;x++)
  624.                     {
  625.  
  626.                                 if((Grid[player1.Xindx+x][player1.Yindx].getTexture()==&breakable) && range_right)
  627.                                 {
  628.                                     //Grid[player1.Xindx+x][player1.Yindx].setTexture(ground2);
  629.  
  630.                                    /* if ((player1.Xindx+x)%2==(player1.Yindx)%2) {Grid[player1.Xindx+x][player1.Yindx].setTexture(ground);}
  631.                                     else {Grid[player1.Xindx+x][player1.Yindx].setTexture(ground2);}
  632.  
  633.                                     Grid[player1.Xindx+x][player1.Yindx].setPosition((player1.Xindx+x+2)*53,(player1.Yindx+0.8)*48);
  634.                                     Grid[player1.Xindx+x][player1.Yindx].setScale(0.1009,0.101);*/
  635.                                     destroy_breakable_walls(player1.Xindx+x ,player1.Yindx,Grid,ground,ground2);
  636.  
  637.                                     range_right=0;
  638.                                     break;
  639.                                 }
  640.  
  641.                                 else if (Grid[player1.Xindx+x][player1.Yindx].getTexture()==&wall)
  642.                                 {
  643.                                     range_right=0;
  644.                                     break;
  645.                                 }
  646.                     }
  647.                     for (int x=1;x<=2;x++)
  648.                     {
  649.  
  650.                                 if((Grid[player1.Xindx][player1.Yindx-x].getTexture()==&breakable) && range_up)
  651.                                 {
  652.  
  653.                                     /*if ((player1.Xindx)%2==(player1.Yindx-x)%2) {Grid[player1.Xindx][player1.Yindx-x].setTexture(ground);}
  654.                                     else {Grid[player1.Xindx][player1.Yindx-x].setTexture(ground2);}
  655.                                     //Grid[player1.Xindx-x][player1.Yindx].setTexture(ground2);
  656.                                     Grid[player1.Xindx][player1.Yindx-x].setPosition((player1.Xindx+2)*53,(player1.Yindx-x+0.8)*48);
  657.                                     Grid[player1.Xindx][player1.Yindx-x].setScale(0.1009,0.101);*/
  658.                                     destroy_breakable_walls(player1.Xindx,player1.Yindx-x,Grid,ground,ground2);
  659.  
  660.                                     range_up=0;
  661.                                     break;
  662.                                 }
  663.                                 else if (Grid[player1.Xindx][player1.Yindx-x].getTexture()==&wall)
  664.                                 {
  665.                                     range_up=0;
  666.                                     break;
  667.                                 }
  668.                     }
  669.                     pos_x++;
  670.                     if(pos_x==3){
  671.                         pos_x=0,pos_y++;
  672.                         if(pos_y==3)
  673.                             explosion=0,clocks.restart(),exp.setColor(Color::Transparent);
  674.                }
  675.             }
  676.          }
  677.      }
  678.  
  679.  
  680.  
  681.     window.clear();
  682.     // Drawing of the Wallpaper
  683.     window.draw(Wallpaper);
  684.  
  685.     //Drawing of The Map
  686.   for (int i = 2; i < width; i++)
  687.         {
  688.             for (int j = 2; j < length; j++)
  689.             {
  690.                 if (Grid[i][j].getTexture() == &ground || Grid[i][j].getTexture() == &ground2)
  691.                 {
  692.                     window.draw(Grid[i][j]);
  693.                 }
  694.             }
  695.  
  696.         }
  697.  
  698.         for (int j = 1; j <= length; j++)
  699.         {
  700.             for (int i = 1; i <= width; i++)
  701.             {
  702.                 if (Grid[i][j].getTexture() == &ground || Grid[i][j].getTexture() == &ground2)
  703.                 {
  704.                     continue;
  705.                 }
  706.  
  707.                 window.draw(Grid[i][j]);
  708.  
  709.                 if (GetYindx(player1.sprt.getPosition().y)>=j)
  710.                 {
  711.                     window.draw(player1.sprt);
  712.                 }
  713.  
  714.  
  715.                 if (GetYindx(player2.sprt.getPosition().y)>=j)
  716.                 {
  717.                     window.draw(player2.sprt);
  718.                 }
  719.             }
  720.         }
  721.  
  722.  
  723.  
  724.     if (explosion) {window.draw(exp);}
  725.     if (ispressed) {window.draw(bombing);}
  726.     window.draw(txt);
  727.     if (display_timer>=25 )
  728.         {window.draw(zone_warning_sprt);window.draw(Hurt);}
  729.     //window.draw(Death);
  730.     if ( death_flag && death_music_duration<=16) {
  731.             window.draw(Death);
  732.             if(death_music_duration==16)
  733.                 exit(0);
  734.     }
  735.     //if (death_flag && death_music_duration>16) {exit(0);}
  736.     window.display();
  737.  
  738. }
  739.  
  740.  
  741.  
  742. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement