Astaa001

Untitled

Apr 30th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 19.71 KB | None | 0 0
  1. #define ll long long
  2. using namespace sf;
  3. using namespace std;
  4. //////////////////////////////////////////////////////////
  5. struct bomb {
  6.     bool bomb_placed = 0;
  7.     bool bomb_exploded = 0;
  8.     vector <Sprite>range_right;
  9.     vector <Sprite>range_left;
  10.     vector <Sprite>range_up;
  11.     vector <Sprite>range_down;
  12.     Sprite sprt;
  13.     Time bomb_time, start_explosion, explosion_time;
  14.     Clock bomb_clock, start_clock, explosion_clock;
  15.     int x_pos, y_pos, x_index, y_index;
  16.     int exp_animation_x = 1, exp_animation_y = 0, bomb_animation_y = 0, bomb_animation_x = 0;
  17.     bool flag_range_up = 1, flag_range_down = 1, flag_range_right = 1, flag_range_left = 1;
  18. };
  19. #define MAX_NUMBER_OF_ITEMS 3
  20. int selectedItemIndex = 0;
  21. Font font; Text menu[MAX_NUMBER_OF_ITEMS];
  22. int GetXindx(float a)
  23. {
  24.     return (a - 183) / 53 + 2;
  25. }
  26. int GetYindx(float a)
  27. {
  28.     return (a - 74) / 48 + 2;
  29. }
  30.  
  31. void destroy_breakable_walls(int Xindx, int Yindx, Sprite Grid[][12], Texture &ground, Texture &ground2)
  32. {
  33.  
  34.     if (Xindx % 2 == Yindx % 2) { Grid[Xindx][Yindx].setTexture(ground); }
  35.     else { Grid[Xindx][Yindx].setTexture(ground2); }
  36.  
  37.     Grid[Xindx][Yindx].setPosition((Xindx + 2) * 53, (Yindx + 0.8) * 48);
  38.     Grid[Xindx][Yindx].setScale(0.1009, 0.101);
  39.  
  40.  
  41. }
  42. ////////////////////////////////////////////////////////
  43. float position = 0, position2 = 0;// Variables of Player
  44. const float speed = 0.25;
  45. int pos_x = 1, pos_y = 0, pos = 0, a, b, i, j;
  46. bool explosion = false, ispressed = false, flag = 0, flag1 = 0;
  47. const int length = 11, width = 19;// Variables of Grid
  48. int main()
  49. {
  50.     //###############################################################################
  51.     //###############################################################################
  52.     // Making of Player
  53.     int posx = 700, posy = 100;
  54.     Sprite Grid[width + 1][length + 1];
  55.     Sprite player, player2, bombing, exp;
  56.     player.setPosition(posx, posy);
  57.     player2.setPosition(1007, 474);
  58.     player.setScale(1, 1);
  59.     player2.setScale(1, 1);
  60.     bombing.setScale(0.2f, 0.2f);
  61.     exp.setScale(0.25, 0.25);
  62.     Texture playertext, player2text, bombtext, exptext;
  63.     playertext.loadFromFile("mainplayer.png");
  64.     player2text.loadFromFile("blue.png");
  65.     bombtext.loadFromFile("BOOM.png");
  66.     exptext.loadFromFile("exp.png");
  67.     player.setTexture(playertext);
  68.     player2.setTexture(player2text);
  69.     bombing.setTexture(bombtext);
  70.     exp.setTexture(exptext);
  71.     Vector2u text_size = playertext.getSize();
  72.     Vector2u text_size_bomb = bombtext.getSize();
  73.     Vector2u text_size_exp = exptext.getSize();
  74.     Vector2u text_size_2 = player2text.getSize();
  75.     text_size.x /= 9;
  76.     text_size.y /= 4;
  77.     text_size_2.x /= 9;
  78.     text_size_2.y /= 4;
  79.     text_size_bomb.y /= 4;
  80.     text_size_exp.x /= 3;
  81.     text_size_exp.y /= 3;
  82.     player.setTextureRect(IntRect(text_size.x * 0, text_size.y * 2, text_size.x, text_size.y));
  83.     player2.setTextureRect(IntRect(text_size.x * 0, text_size.y * 2, text_size.x, text_size.y));
  84.     Time times2, times, t, ti, bomb_timer;
  85.     Clock clocks2, c, cs, clocks, clock_timer;
  86.     // Making of Grid
  87.         // MAP DEFINATION
  88.     Texture wall, ground, wallpaper, ground2, breakable, life, range, hurt;
  89.     if (!breakable.loadFromFile("breakable.png"))
  90.     {
  91.         cout << "error loading breakable wall pic";
  92.     }
  93.     if (!wallpaper.loadFromFile("wallpaper.jpg"))
  94.     {
  95.         cout << "error loading wallpaper pic";
  96.     }
  97.     if (!wall.loadFromFile("3d wall.png"))
  98.     {
  99.         cout << "error loading wall pic";
  100.     }
  101.     if (!ground.loadFromFile("ground 1.png"))
  102.     {
  103.         cout << "error loading ground pic";
  104.     }
  105.     if (!ground2.loadFromFile("grass.png"))
  106.     {
  107.         cout << "error loading grass pic";
  108.     }
  109.     if (!life.loadFromFile("flife.png"))
  110.     {
  111.         cout << "error loading life pic";
  112.     }
  113.     if (!range.loadFromFile("frange.png"))
  114.     {
  115.         cout << "error loading range pic";
  116.     }
  117.     if (!hurt.loadFromFile("fhurt.png"))
  118.     {
  119.         cout << "error loading  hurt pic";
  120.     }
  121.     // Player abilities
  122.     bomb bomb_template;
  123.     bomb_template.sprt.setTexture(bombtext);
  124.     bomb_template.sprt.setScale(0.15f, 0.15f);
  125.     vector<bomb>bombs;
  126.     int number_of_bombs = 0, range_of_bomb = 2, bomb_placement_timer = 0, superpower_of_bomb = 2;
  127.     //bombs.push_back(bomb_template);
  128.     Sprite lifeS, bombS, rangeS, Hurt, Wallpaper;
  129.     lifeS.setTexture(life);
  130.     lifeS.setPosition(0, 180);
  131.     lifeS.setScale(0.1f, 0.1f);
  132.     rangeS.setTexture(range);
  133.     rangeS.setPosition(0, 250);
  134.     rangeS.setScale(0.15f, 0.15f);
  135.     bombS.setTexture(bombtext);
  136.     bombS.setPosition(0, 330);
  137.     bombS.setScale(0.15f, 0.15f);
  138.     Hurt.setTexture(hurt);
  139.     Wallpaper.setTexture(wallpaper);
  140.     Texture healskill;
  141.     healskill.loadFromFile("Heal.png");
  142.     Sprite healS[6];
  143.     // Distribution of wall & ground on the Grid
  144.     for (int i = 1; i <= width; i++)
  145.     {
  146.         for (int j = 1; j <= length; j++)
  147.         {
  148.             if (i % 2 != 0 && j % 2 != 0)
  149.             {
  150.                 Grid[i][j].setTexture(wall);
  151.                 Grid[i][j].setPosition((i + 1.97)*53.15, (j + 0.255) * 48);
  152.                 Grid[i][j].setScale(Vector2f(0.1009, 0.165));
  153.             }
  154.             else if (i == 1 || i == width)
  155.             {
  156.                 Grid[i][j].setTexture(wall);
  157.                 Grid[i][j].setPosition((i + 1.97)*53.15, (j + 0.255) * 48);
  158.                 Grid[i][j].setScale(Vector2f(0.1009, 0.165));
  159.             }
  160.             else if (j == 1 || j == length)
  161.             {
  162.                 Grid[i][j].setTexture(wall);
  163.                 Grid[i][j].setPosition((i + 1.97)*53.15, (j + 0.255) * 48);
  164.                 Grid[i][j].setScale(Vector2f(0.1009, 0.165));
  165.             }
  166.             else
  167.             {
  168.                 if (i % 2 == j % 2) { Grid[i][j].setTexture(ground); }
  169.                 else { Grid[i][j].setTexture(ground2); }
  170.                 Grid[i][j].setPosition((i + 2) * 53, (j + 0.8) * 48);
  171.                 Grid[i][j].setScale(0.1, 0.101);
  172.             }
  173.         }
  174.     }
  175.     for (int i = 1; i <= 40; i++)
  176.     {
  177.         int x = rand() % 16 + 2, y = rand() % 9 + 2;
  178.         if (x % 2 != 0 && y % 2 != 0)
  179.         {
  180.             x++;
  181.         }
  182.         Grid[x][y].setTexture(breakable);
  183.         Grid[x][y].setPosition((x + 1.97)*53.15, (y + 0.232)*50.5);
  184.         Grid[x][y].setScale(Vector2f(0.1015, 0.169));
  185.     }
  186.     //Game Window
  187.     RenderWindow window(VideoMode(1280, 768), "our first try with SFML");
  188.     while (window.isOpen())
  189.     {
  190.         Event event;
  191.         while (window.pollEvent(event))
  192.         {
  193.             if (event.type == sf::Event::Closed)
  194.                 window.close();
  195.         }
  196.         // bombing
  197.         if (bomb_placement_timer < 200)
  198.         {
  199.             bomb_placement_timer++;
  200.         }
  201.         if (Keyboard::isKeyPressed(Keyboard::Key::Space) && bomb_placement_timer == 200) {
  202.             bombs.push_back(bomb_template);
  203.             bombs[bombs.size() - 1].bomb_clock.restart();
  204.             bombs[bombs.size() - 1].explosion_clock.restart();
  205.             bombs[bombs.size() - 1].start_clock.restart();
  206.             bombs[bombs.size() - 1].bomb_placed = 1;
  207.             bombs[bombs.size() - 1].x_pos = player.getPosition().x;
  208.             bombs[bombs.size() - 1].y_pos = player.getPosition().y;
  209.             bombs[bombs.size() - 1].x_index = GetXindx(bombs[bombs.size() - 1].x_pos);
  210.             bombs[bombs.size() - 1].y_index = GetYindx(bombs[bombs.size() - 1].y_pos);
  211.             bomb_placement_timer = 0;
  212.         }
  213.         //if (bombs.size()>0){
  214.         for (int io = 0; io < bombs.size(); io++)
  215.         {
  216.  
  217.             if (bombs[io].bomb_placed == 1) {
  218.                 bombs[io].bomb_time = bombs[io].bomb_clock.getElapsedTime();
  219.                 bombs[io].start_explosion = bombs[io].start_clock.getElapsedTime();
  220.                 if (bombs[io].bomb_time.asSeconds() >= 0.2) {
  221.                     bombs[io].bomb_clock.restart();
  222.                     bombs[io].sprt.setPosition(bombs[io].x_pos, bombs[io].y_pos + 25);
  223.                     bombs[io].sprt.setTextureRect(IntRect(0, text_size_bomb.y*bombs[io].bomb_animation_y, text_size_bomb.x, text_size_bomb.y));
  224.                     bombs[io].bomb_animation_y += 2;
  225.                     if (bombs[io].bomb_animation_y > 2)
  226.                         bombs[io].bomb_animation_y = 0;
  227.                 }
  228.                 if (bombs[io].start_explosion.asSeconds() >= 3) {
  229.                     bombs[io].bomb_exploded = 1;
  230.                     bombs[io].bomb_placed = 0;
  231.                     //                bombs[number_of_bombs].sprt.setColor(Color::Transparent);
  232.                     for (int k = 0; k <= range_of_bomb; k++)
  233.                     {
  234.                         bombs[io].range_right.push_back(exp);
  235.                         bombs[io].range_left.push_back(exp);
  236.                         bombs[io].range_up.push_back(exp);
  237.                         bombs[io].range_down.push_back(exp);
  238.                         //                     v[z].push_back(exp);
  239.                     }
  240.                 }
  241.             }
  242.             //cout<<player.getPosition().x<<' '<<player.getPosition().y<<endl;
  243.             if (bombs[io].bomb_exploded) {
  244.                 bombs[io].explosion_time = bombs[io].explosion_clock.getElapsedTime();
  245.                 if (bombs[io].explosion_time.asSeconds() >= 0.08) {
  246.                     bombs[io].explosion_clock.restart();
  247.                     for (int n = 0, k = 0; k <= range_of_bomb, n <= range_of_bomb * 50; k++, n += 50)
  248.                         bombs[io].range_right[k].setPosition(bombs[io].x_pos + n, bombs[io].y_pos);
  249.  
  250.                     for (int n = 0, k = 0; k <= range_of_bomb, n <= range_of_bomb * 50; k++, n += 50)
  251.                         bombs[io].range_right[k].setTextureRect(IntRect(text_size_exp.x*bombs[io].exp_animation_x, text_size_bomb.y*bombs[io].exp_animation_y, text_size_exp.x, text_size_exp.y));
  252.  
  253.                     for (int n = 0, k = 0; k <= range_of_bomb, n <= range_of_bomb * 50; k++, n += 50)
  254.                         bombs[io].range_left[k].setPosition(bombs[io].x_pos - n, bombs[io].y_pos);
  255.  
  256.                     for (int n = 0, k = 0; k <= range_of_bomb, n <= range_of_bomb * 50; k++, n += 50)
  257.                         bombs[io].range_left[k].setTextureRect(IntRect(text_size_exp.x*bombs[io].exp_animation_x, text_size_bomb.y*bombs[io].exp_animation_y, text_size_exp.x, text_size_exp.y));
  258.  
  259.                     for (int n = 0, k = 0; k <= range_of_bomb, n <= range_of_bomb * 50; k++, n += 50)
  260.                         bombs[io].range_up[k].setPosition(bombs[io].x_pos, bombs[io].y_pos - n);
  261.  
  262.                     for (int n = 0, k = 0; k <= range_of_bomb, n <= range_of_bomb * 50; k++, n += 50)
  263.                         bombs[io].range_up[k].setTextureRect(IntRect(text_size_exp.x*bombs[io].exp_animation_x, text_size_bomb.y*bombs[io].exp_animation_y, text_size_exp.x, text_size_exp.y));
  264.  
  265.                     for (int n = 0, k = 0; k <= range_of_bomb, n <= range_of_bomb * 50; k++, n += 50)
  266.                         bombs[io].range_down[k].setPosition(bombs[io].x_pos, bombs[io].y_pos + n);
  267.  
  268.                     for (int n = 0, k = 0; k <= range_of_bomb, n <= range_of_bomb * 50; k++, n += 50)
  269.                         bombs[io].range_down[k].setTextureRect(IntRect(text_size_exp.x*bombs[io].exp_animation_x, text_size_bomb.y*bombs[io].exp_animation_y, text_size_exp.x, text_size_exp.y));
  270.  
  271.                     /*if(Grid[a][b+1].getTexture()==&breakable)
  272.                         {
  273.                             if (a%2==(b+1)%2) {Grid[a][b+1].setTexture(ground);}
  274.                             else {Grid[a][b+1].setTexture(ground2);}
  275.                         }
  276.                      else if(Grid[a+1][b].getTexture()==&breakable)
  277.                         {
  278.                             if ((a+1)%2==b%2) {Grid[a+1][b].setTexture(ground);}
  279.                             else {Grid[a+1][b].setTexture(ground2);}
  280.                         }
  281.                     else if(Grid[a-1][b].getTexture()==&breakable)
  282.                         {
  283.                             if ((a-1)%2==b%2) {Grid[a-1][b].setTexture(ground);}
  284.                             else {Grid[a-1][b].setTexture(ground2);}
  285.                         }
  286.                     else if(Grid[a][b-1].getTexture()==&breakable)
  287.                         {
  288.                             if (a%2==(b-1)%2) {Grid[a][b-1].setTexture(ground);}
  289.                             else {Grid[a][b-1].setTexture(ground2);}
  290.                         }*/
  291.                         //cout<<bombs[io].exp_animation_x<<"          "<<bombs[io].exp_animation_y<<endl;
  292.                     bombs[io].exp_animation_x++;
  293.                     if (bombs[io].exp_animation_x == 3) {
  294.                         bombs[io].exp_animation_x = 0, bombs[io].exp_animation_y++;
  295.                         if (bombs[io].exp_animation_y == 3) {
  296.                             bombs[io].bomb_exploded = 0;
  297.                             //  bombs[io].explosion_clock.restart();
  298.                                   /*for(int z=0;z<=3;z++)
  299.                               {
  300.                                       bombs[number_of_bombs].range_right[z].setColor(Color::Transparent);
  301.                                       bombs[number_of_bombs].range_left[z].setColor(Color::Transparent);
  302.                                       bombs[number_of_bombs].range_up[z].setColor(Color::Transparent);
  303.                                       bombs[number_of_bombs].range_down[z].setColor(Color::Transparent);
  304.  
  305.                               }*/
  306.                             bombs.erase(bombs.begin());
  307.  
  308.                         }
  309.                     }
  310.                 }
  311.             }
  312.         }
  313.         //}
  314.  
  315.      // Player Movement
  316.         if (Keyboard::isKeyPressed(Keyboard::Key::Right) && (Grid[GetXindx(player.getPosition().x + 12)][GetYindx(player.getPosition().y)].getTexture() == &ground || Grid[GetXindx(player.getPosition().x + 12)][GetYindx(player.getPosition().y)].getTexture() == &ground2))      // Moving Right
  317.         {
  318.             player.move(speed, 0.0);
  319.             times = clocks.getElapsedTime();
  320.             if (times.asSeconds() >= 0.1) {
  321.                 clocks.restart();
  322.                 position++;
  323.                 if (position > 8)
  324.                     position -= 8;
  325.             }
  326.             player.setTextureRect(IntRect(text_size.x*position, text_size.y * 3, text_size.x, text_size.y));
  327.         }
  328.         else if (Keyboard::isKeyPressed(Keyboard::Key::Left) && (Grid[GetXindx(player.getPosition().x - 12)][GetYindx(player.getPosition().y)].getTexture() == &ground || Grid[GetXindx(player.getPosition().x - 12)][GetYindx(player.getPosition().y)].getTexture() == &ground2))         // Moving Left
  329.         {
  330.             player.move(-speed, 0.0);
  331.             times = clocks.getElapsedTime();
  332.             if (times.asSeconds() >= 0.1) {
  333.                 clocks.restart();
  334.                 position++;
  335.                 if (position > 8)
  336.                     position -= 8;
  337.             }
  338.             player.setTextureRect(IntRect(text_size.x*position, text_size.y * 1, text_size.x, text_size.y));
  339.         }
  340.         else if (Keyboard::isKeyPressed(Keyboard::Key::Up) && (Grid[GetXindx(player.getPosition().x)][GetYindx(player.getPosition().y - 7)].getTexture() == &ground || Grid[GetXindx(player.getPosition().x)][GetYindx(player.getPosition().y - 7)].getTexture() == &ground2))           // Moving Up
  341.         {
  342.             player.move(0.0, -speed);
  343.             posy = player.getPosition().y;
  344.             times = clocks.getElapsedTime();
  345.             if (times.asSeconds() >= 0.1) {
  346.                 clocks.restart();
  347.                 position++;
  348.                 if (position > 8)
  349.                     position -= 8;
  350.             }
  351.             player.setTextureRect(IntRect(text_size.x*position, text_size.y * 0, text_size.x, text_size.y));
  352.         }
  353.         else if (Keyboard::isKeyPressed(Keyboard::Key::Down) && (Grid[GetXindx(player.getPosition().x)][GetYindx(player.getPosition().y + 7)].getTexture() == &ground || Grid[GetXindx(player.getPosition().x)][GetYindx(player.getPosition().y + 7)].getTexture() == &ground2))         // Moving Down
  354.         {
  355.             player.move(0.0, speed);
  356.             times = clocks.getElapsedTime();
  357.             if (times.asSeconds() >= 0.1) {
  358.                 clocks.restart();
  359.                 position++;
  360.                 if (position > 8)
  361.                     position -= 8;
  362.             }
  363.             player.setTextureRect(IntRect(text_size.x*position, text_size.y * 2, text_size.x, text_size.y));
  364.         }
  365.         if (Keyboard::isKeyPressed(Keyboard::Key::D) && (Grid[GetXindx(player2.getPosition().x + 12)][GetYindx(player2.getPosition().y)].getTexture() == &ground || Grid[GetXindx(player2.getPosition().x + 12)][GetYindx(player2.getPosition().y)].getTexture() == &ground2))      // Moving Right
  366.         {
  367.             player2.move(speed, 0.0);
  368.             times2 = clocks2.getElapsedTime();
  369.             if (times2.asSeconds() >= 0.1) {
  370.                 clocks2.restart();
  371.                 position2++;
  372.                 if (position2 > 8)
  373.                     position2 -= 8;
  374.             }
  375.             player2.setTextureRect(IntRect(text_size_2.x*position2, text_size_2.y * 3, text_size_2.x, text_size_2.y));
  376.         }
  377.         else if (Keyboard::isKeyPressed(Keyboard::Key::A) && (Grid[GetXindx(player2.getPosition().x + 12)][GetYindx(player2.getPosition().y)].getTexture() == &ground || Grid[GetXindx(player2.getPosition().x + 12)][GetYindx(player2.getPosition().y)].getTexture() == &ground2))      // Moving Right
  378.         {
  379.             player2.move(-speed, 0.0);
  380.             times2 = clocks2.getElapsedTime();
  381.             if (times2.asSeconds() >= 0.1) {
  382.                 clocks2.restart();
  383.                 position2++;
  384.                 if (position2 > 8)
  385.                     position2 -= 8;
  386.             }
  387.             player2.setTextureRect(IntRect(text_size_2.x*position2, text_size_2.y * 1, text_size_2.x, text_size_2.y));
  388.         }
  389.         else if (Keyboard::isKeyPressed(Keyboard::Key::W) && (Grid[GetXindx(player2.getPosition().x + 12)][GetYindx(player2.getPosition().y)].getTexture() == &ground || Grid[GetXindx(player2.getPosition().x + 12)][GetYindx(player2.getPosition().y)].getTexture() == &ground2))      // Moving Right
  390.         {
  391.             player2.move(0.0, -speed);
  392.             times2 = clocks2.getElapsedTime();
  393.             if (times2.asSeconds() >= 0.1) {
  394.                 clocks2.restart();
  395.                 position2++;
  396.                 if (position2 > 8)
  397.                     position2 -= 8;
  398.             }
  399.             player2.setTextureRect(IntRect(text_size_2.x*position2, text_size_2.y * 0, text_size_2.x, text_size_2.y));
  400.         }
  401.         else if (Keyboard::isKeyPressed(Keyboard::Key::S) && (Grid[GetXindx(player2.getPosition().x + 12)][GetYindx(player2.getPosition().y)].getTexture() == &ground || Grid[GetXindx(player2.getPosition().x + 12)][GetYindx(player2.getPosition().y)].getTexture() == &ground2))      // Moving Right
  402.         {
  403.             player2.move(0.0, speed);
  404.             times2 = clocks2.getElapsedTime();
  405.             if (times2.asSeconds() >= 0.1) {
  406.                 clocks2.restart();
  407.                 position2++;
  408.                 if (position2 > 8)
  409.                     position2 -= 8;
  410.             }
  411.             player2.setTextureRect(IntRect(text_size_2.x*position2, text_size_2.y * 2, text_size_2.x, text_size_2.y));
  412.         }
  413.         int a = 6;
  414.         for (int i = 0; i < a; i++) {
  415.             int x = rand() % 16 + 2, y = rand() % 9 + 2;
  416.             if (Grid[x][y].getTexture() != &breakable) {
  417.                 a++;
  418.                 continue;
  419.             }
  420.             healS[a - i].setTexture(healskill);
  421.             healS[a - i].setScale(0.5, 0.5);
  422.             healS[a - i].setPosition((x + 2.05)*53.15, (y + 0.232)*50.5);
  423.         }
  424.         window.clear();
  425.         // Drawing of the Wallpaper
  426.         window.draw(Wallpaper);
  427.         //Drawing of The Map
  428.         for (int i = 2; i < width; i++)
  429.         {
  430.             for (int j = 2; j < length; j++)
  431.             {
  432.                 if (Grid[i][j].getTexture() == &ground || Grid[i][j].getTexture() == &ground2)
  433.                 {
  434.                     window.draw(Grid[i][j]);
  435.                 }
  436.             }
  437.         }
  438.         //for (int i=0;i<5;i++){
  439.           //  window.draw(healS[i]);
  440.         //}
  441.         for (int j = 1; j <= length; j++)
  442.         {
  443.             for (int i = 1; i <= width; i++)
  444.             {
  445.                 if (Grid[i][j].getTexture() == &ground || Grid[i][j].getTexture() == &ground2)
  446.                 {
  447.                     continue;
  448.                 }
  449.                 window.draw(Grid[i][j]);
  450.  
  451.                 if (GetYindx(player.getPosition().y) >= j)
  452.                 {
  453.                     window.draw(player);
  454.                 }
  455.             }
  456.         }
  457.  
  458.         //if (bombs.size()>0)
  459.         //{
  460.         for (int io = 0; io < bombs.size(); io++)
  461.         {
  462.             if (bombs[io].bomb_placed)
  463.                 window.draw(bombs[io].sprt);
  464.             if (bombs[io].bomb_exploded)
  465.             {
  466.                 //for(int h=0;h<=3;h++)
  467.                 for (int g = 0; g <= range_of_bomb; g++)
  468.                 {
  469.  
  470.                     window.draw(bombs[io].range_right[g]);
  471.  
  472.                     if ((Grid[bombs[io].x_index + g][bombs[io].y_index].getTexture() == &breakable)&& bombs[io].flag_range_right)
  473.                     {
  474.                         destroy_breakable_walls(bombs[io].x_index + g, bombs[io].y_index, Grid, ground, ground2);
  475.                         bombs[io].flag_range_right = 0;
  476.                         break;
  477.                     }
  478.                     else if (Grid[bombs[io].x_index + g][bombs[io].y_index].getTexture() == &wall)
  479.                     {
  480.  
  481.                         bombs[io].flag_range_right = 0;
  482.                         break;
  483.                     }
  484.                 }
  485.  
  486.                 for (int g = 0; g <= range_of_bomb; g++)
  487.                 {
  488.                     window.draw(bombs[io].range_left[g]);
  489.  
  490.                     if ((Grid[bombs[io].x_index - g][bombs[io].y_index].getTexture() == &breakable)&& bombs[io].flag_range_left)
  491.                     {
  492.                         destroy_breakable_walls(bombs[io].x_index - g, bombs[io].y_index, Grid, ground, ground2);
  493.  
  494.                         bombs[io].flag_range_left = 0;
  495.                         break;
  496.                     }
  497.                     else if (Grid[bombs[io].x_index - g][bombs[io].y_index].getTexture() == &wall)
  498.                     {
  499.                         bombs[io].flag_range_left = 0;
  500.                         break;
  501.                     }
  502.  
  503.                 }
  504.                 for (int g = 0; g <= range_of_bomb; g++)
  505.                 {
  506.  
  507.                     window.draw(bombs[io].range_up[g]);
  508.  
  509.                     if ((Grid[bombs[io].x_index][bombs[io].y_index - g].getTexture() == &breakable)&& bombs[io].flag_range_up)
  510.                     {
  511.  
  512.  
  513.                         destroy_breakable_walls(bombs[io].x_index, bombs[io].y_index - g, Grid, ground, ground2);
  514.  
  515.                         bombs[io].flag_range_up = 0;
  516.                         break;
  517.  
  518.                     }
  519.                     else if (Grid[bombs[io].x_index][bombs[io].y_index - g].getTexture() == &wall)
  520.                     {
  521.  
  522.                         bombs[io].flag_range_up = 0;
  523.                         break;
  524.                     }
  525.  
  526.                 }
  527.                 for (int g = 0; g <= range_of_bomb; g++)
  528.                 {
  529.  
  530.                     window.draw(bombs[io].range_down[g]);
  531.                     if ((Grid[bombs[io].x_index][bombs[io].y_index + g].getTexture() == &breakable)&& bombs[io].flag_range_down)
  532.                     {
  533.                         destroy_breakable_walls(bombs[io].x_index, bombs[io].y_index + g, Grid, ground, ground2);
  534.                         bombs[io].flag_range_down = 0;
  535.                         break;
  536.                     }
  537.                     else if (Grid[bombs[io].x_index][bombs[io].y_index + g].getTexture() == &wall && bombs[io].flag_range_down)
  538.                     {
  539.  
  540.                         bombs[io].flag_range_down = 0;
  541.                         break;
  542.                     }
  543.  
  544.                 }
  545.  
  546.             }
  547.         }
  548.         //for(int h=0;h<=3;h++)
  549.             //window.draw(v[1][h]);
  550.         //for(int h=0;h<=3;h++)
  551.           //  window.draw(v[2][h]);
  552.         //for(int h=0;h<=3;h++)
  553.           //   window.draw(v[3][h]);
  554.     //}
  555.         window.draw(lifeS);
  556.         window.draw(rangeS);
  557.         //window.draw(bombS);
  558.         window.display();
  559.     }
  560.     return 0;
Advertisement
Add Comment
Please, Sign In to add comment