SFML窗口因分段错误而关闭

时间:2018-02-02 19:36:27

标签: c++ pointers sfml

致力于实现基本状态堆栈并制作了基本菜单。我通过共享指针访问菜单。窗口正确加载但是当我去绘制一个对象时(从另一个具有共享指针副本作为属性的类)没有任何反应。窗口保持空白(或者说透视)example here,但不会冻结(窗口仍然可以移动),直到它关闭,程序停止,行中出现seg故障该类试图绘制一个对象。

void Menu::draw() {
    // Draw text objects
    game->window->draw(title);
    game->window->draw(play);
    game->window->draw(settings);
}
  

game是指向游戏管理器类(处理状态堆栈)的指针,它有一个指向window的智能指针作为其属性之一

我已经确定所有相关功能(初始化,更新和绘制)都在运行,并检查窗口对象是否已被销毁,但似乎找不到任何理由。

我正在GitHub here开发这个程序,并且非常感谢有关该程序无法正常运行的任何意见。

编辑:窗口没有显示,因为我没有调用Windows绘图功能。但是,当游戏管理器绘制功能关闭窗口时,程序仍会因seg故障而失败:

// Run draw function for the top state
void gameManager::draw() {
    // Clear window
    window->clear(sf::Color::Black);

    // Call the draw function of the class atop the stack
    stateStack.top()->draw();

    // Display the changes to the window
    window->display();
}
  

window是指向RenderWindow对象的智能指针,stateStack.top()->draw();返回当前正在运行的状态的绘制函数(例如,参见上文)

0 个答案:

没有答案