У меня очень неприятная проблема, когда я вызываю функцию:
void renderGame::renderMovingBlock(movingBlock* blockToRender){
sf::Shape blockPolygon;
sf::Shape blockLine = sf::Shape::Line(blockToRender->getLineBegin().x,blockToRender->getLineBegin().y,blockToRender->getLineEnd().x,blockToRender->getLineEnd().y, 3.f,movingBlockLineColor);
for(auto i = blockToRender->getVertexArray()->begin(); i!=blockToRender->getVertexArray()->end(); ++i){
blockPolygon.AddPoint(i->x, i->y, movingBlockBlockColor);
}
renderToWindow->Draw(blockLine);
renderToWindow->Draw(blockPolygon);
}
Это простая функция, она берет указатель на объект и использует SFML для его отображения на экране.Это простой многоугольник, который движется по рельсу.
getVertexArray () возвращает указатель на вектор вершин объекта, renderToWindow - указатель на sf :: RenderWindow
Очень странная проблема, которая у меня естьв том, что я могу вызвать эту функцию, она не вернется, VC ++ ломается и указывает на:
int __cdecl atexit (
_PVFV func
)
{
return (_onexit((_onexit_t)func) == NULL) ? -1 : 0;
}
Я получаю странное поведение здесь, я могу остановить эту функцию прямо перед выходом, вызвавФункция Display () и система («пауза»), она будет отображать все отлично, но на один шаг дальше, и это ломается.
Я добавлю, что я отправляю динамически размещенный объект, когда яустановить обычный все нормально.Странно, когда я отлаживаю программу, тогда полигон и линия имеют правильные координаты, все отображается правильно, но просто не может вернуться из функции.