void Dot::newObstacle(bool isPressed)
{
if(isPressed == 1) mousePosStart = Mouse::getPosition(okno);
if(isPressed == 0)
{
mousePosFinish = Mouse::getPosition(okno);
int sizex, sizey;
sizex = (mousePosStart.x>mousePosFinish.x) ? mousePosStart.x-mousePosFinish.x : mousePosFinish.x-mousePosStart.x;
sizey = (mousePosStart.y>mousePosFinish.y) ? mousePosStart.y-mousePosFinish.y : mousePosFinish.y-mousePosStart.y;
obstacle = new RectangleShape;
obstacleCount++;
obstacle[obstacleCount-1].setSize(Vector2f(sizex,sizey));
obstacle[obstacleCount-1].setFillColor(Color::Red);
obstacle[obstacleCount-1].setPosition(mousePosStart.x,mousePosStart.y);
}
}
Witam, mam pewien problem z funkcją, która miała działać w taki sposób że, gdy kliknę lewy przycisk myszy zostają zapisane współrzędne myszy, po czym przeciągam myszkę na inną pozycję i puszczam przycisk, wtedy znów zapisywane są współrzędne i na ich podstawie jest tworzony prostokąt. Ten prostokąt jest obiektem wskaźnika obstacle i od razu chcę przypisać mu odpowiednie parametry. Tu pojawia się problem ponieważ, gdy program jest włączony, pierwszy taki prostokąt jest tworzony bez problemu ale przy drugim program przestaje działać i wyświetla mi błąd w linijce
obstacle[obstacleCount-1].setSize(Vector2f(sizex,sizey));
zmienna obstacleCount działa jak powinna czyli jest zwiększana za każdym razem gdy powstaje nowy objekt, ale w momencie gdy program próbuje edytować obstacle[1] przestaje działać