работа с окнами sfml и несколькими событиями, передача управления с одного окна на другое для обработки других событий

у меня есть следующая проблема. Пишу курсовую работу, поэтому прошу ответить как можно более понятно потому, что, к сожалению, времени нет. Я создал два окна первое окно это меню там есть три фигуры и при нажатие на них должно передаваться управление на другое окно то, есть нарисовать фигуру в зависимости от той кнопке на какую нажато было. Это у меня работает но частично так как в действительности создается фигура но не получается выбрать позицию на окне для создания его не в произвольном месте( проблема в том, что не получается задать новые координаты создания; как это сделать?) код прикладываю.

class GameCore
{
    Event ev;
    Event eva;
    Menu menu;
    SetElemCircle elemCircle;
    SetElemRectangle elemRectangle;
    SetElemEllipse elemEllipse;

    unsigned int amount_of_elements = 4;
    unsigned int quantity_сircle = 5;
    //SetElement vec;
    RenderWindow* win;
    RenderWindow* winMenu;
    vector <SelectableCircle*> circles;
    vector <SelectableRectangle*> rectangles;
    vector <SelectableEllipse*> ellipses;
    void update();
    void draw();
    //void drawMenu();
public:
    void start();
    GameCore(int w, int h);
    GameCore();
    ~GameCore();
        
};
void GameCore::update()
{
    int i = 0;
    while (winMenu->pollEvent(ev) ) {
        if (ev.type == Event::Closed)
            winMenu->close();
        menu;
    
            /*создание на правую кнопку мыши*/
            if (menu.circleMenu->isPointInside(Vector2f(ev.mouseButton.x, ev.mouseButton.y)))
            {

                if (ev.type == Event::MouseButtonPressed && ev.mouseButton.button == Mouse::Right)
                {
                    circles.push_back(new SelectableCircle(ev.mouseButton.x, ev.mouseButton.y));

                }
            }
//аналогично для других фигур
void GameCore::start()
{
    Clock clc;
    while (winMenu->isOpen() ) {
        //int elapsed = clc.restart().asMilliseconds();
        //update(elapsed);
        update();
        draw();
        menu.drawMenu(winMenu);
        
    }
class Menu
{
public:

    SelectableCircle* circleMenu;
    SelectableRectangle* rectangleMenu;
    SelectableEllipse* ellipseMenu;
    //RectangleShape rectangleMenu;
    //CircleShape circleMenu;
    //EllipseShape ellipseMenu;

public:
    Menu();
    void drawMenu(RenderWindow* winMenu);
    ~Menu();
};

Menu::Menu()
{
    rectangleMenu = new SelectableRectangle(150, 70);
    rectangleMenu->color();
    circleMenu = new SelectableCircle(400, 130);
    circleMenu->color();

    ellipseMenu = new SelectableEllipse(600, 100);
    ellipseMenu->color();
}

Надергал куски программы из хедер файлов ( один класс = хедер файл), в main GameCore создается

!там где съехал прямоугольник в угол это как раз там где должны создаваться фигуры]1 извините, что без знаков препинания - спешу.


Ответы (0 шт):