0

У меня такая проблема. Есть код, который никак не компилируется, потому что выдает ошибку вот такую:

Ошибка

Вот сам код:

#include <SFML/Graphics.hpp>

using namespace sf;

#pragma comment(lib, "sfml-graphics-d.lib") #pragma comment(lib, "sfml-window-d.lib") #pragma comment(lib, "sfml-system-d.lib")

void menu(RenderWindow& window) { Texture menuTexture1, menuTexture2, menuTexture3, aboutTexture, menuBackground; menuTexture1.loadFromFile("images/111.png"); menuTexture2.loadFromFile("images/222.png"); menuTexture3.loadFromFile("images/333.png"); aboutTexture.loadFromFile("images/about.png"); menuBackground.loadFromFile("images/about.png"); Sprite menu1(menuTexture1), menu2(menuTexture2), menu3(menuTexture3), about(aboutTexture), menuBg(menuBackground); bool isMenu = 1; int menuNum = 0; menu1.setPosition(100, 30); menu2.setPosition(100, 90); menu3.setPosition(100, 150); menuBg.setPosition(345, 0);

//////////////////////////////МЕНЮ///////////////////
while (isMenu)
{
    menu1.setColor(Color::White);
    menu2.setColor(Color::White);
    menu3.setColor(Color::White);
    menuNum = 0;
    window.clear(Color(129, 181, 221));

    if (IntRect(100, 30, 300, 50).contains(Mouse::getPosition(window))) { menu1.setColor(Color::Blue); menuNum = 1; }
    if (IntRect(100, 90, 300, 50).contains(Mouse::getPosition(window))) { menu2.setColor(Color::Blue); menuNum = 2; }
    if (IntRect(100, 150, 300, 50).contains(Mouse::getPosition(window))) { menu3.setColor(Color::Blue); menuNum = 3; }

    if (Mouse::isButtonPressed(Mouse::Left))
    {
        if (menuNum == 1) isMenu = false;//если нажали первую кнопку, то выходим из меню 
        if (menuNum == 2) { window.draw(about); window.display(); while (!Keyboard::isKeyPressed(Keyboard::Escape)); }
        if (menuNum == 3) { window.close(); isMenu = false; }

    }

    window.draw(menuBg);
    window.draw(menu1);
    window.draw(menu2);
    window.draw(menu3);

    window.display();
}
////////////////////////////////////////////////////

}

Leonid
  • 1
  • и где же Ваша функция main? – KoVadim Jun 22 '21 at 11:29
  • @KoVadim этот код я брал из интернета. – Leonid Jun 22 '21 at 11:36
  • 2
    Нельзя просто так взять произвольный кусок кода и надеяться, что он будет работать. Этот кусок кода просто кусок кода. Вам нужно как минимум дописать функцию main, в которой будет инициализация sfml, и другой полезный код, который вызовет код выше. – KoVadim Jun 22 '21 at 11:38
  • @KoVadim дописал в конце просто int main() {}, теперь ошибок нет, запускается, но пишет, что "завершена работа с кодом 0" – Leonid Jun 22 '21 at 11:47
  • 2
    логично. Если код не вызывать, то он и не будет работать. – KoVadim Jun 22 '21 at 11:59
  • Да, все так. Вызываю код: int main() { menu(); } но ошибка в том, что menu() требует аргументы – Leonid Jun 22 '21 at 12:02
  • ну так правильно, создайте sfml окно и все будет – KoVadim Jun 22 '21 at 12:30

0 Answers0