致力于实现基本状态堆栈并制作了基本菜单。我通过共享指针访问菜单。窗口正确加载但是当我去绘制一个对象时(从另一个具有共享指针副本作为属性的类)没有任何反应。窗口保持空白(或者说透视)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();
返回当前正在运行的状态的绘制函数(例如,参见上文)