每次我在SFML中绘制列表项时,它都会崩溃
Everytime I draw list item in SFML it crashes?
所以我在创建列表并让它使用 SFML 库写入我的窗口时遇到了一个小问题。基本上发生的事情是,当我执行fire((函数时,游戏冻结并崩溃。
变量代码:
sf::Sprite laser;
列表代码为:
std::list<sf::Sprite>laserList;
消防代码是(当我点击按钮时调用(:
bool fire(void)
{
laserList.push_back(laser);
return true;
}
这是窗口的绘图代码:
//This is code for running through and drawing each sprite in list
for(std::list<sf::Sprite>::iterator it = laserList.begin(); it != laserList.end(); laserList;)
{
app.draw(*it);
}
你的for
循环在这里有点奇怪:
for(std::list<sf::Sprite>::iterator it = laserList.begin(); it != laserList.end(); laserList;)
你会发现这将形成一个无限循环,因为it
的值永远不会改变。这可能是导致崩溃的原因。要修复它,您需要在每次循环后增加迭代器:
for(std::list<sf::Sprite>::iterator it = laserList.begin(); it != laserList.end(); ++laserList)
有一个编辑建议如下,但由于某种原因被拒绝。为了完整起见,我已将其添加到此处
通过使用 C++11 中引入的基于范围的 for 循环,可以避免对此语法产生任何混淆:
for(sf::Sprite spr : laserList){
app.draw(spr);
}
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- 如何在C / C++中正确实现链接列表而不会使程序崩溃
- C 链接列表堆栈POP功能崩溃
- 我很难弄清楚为什么我的双重链接列表会崩溃,我可以找到一些方向
- 将元素添加到列表会使程序崩溃..有时
- C++初始化复制构造函数中的列表赋值,并在复制构造函数中崩溃
- 带有圆形链接列表的崩溃
- 删除 C++ 中的列表会导致崩溃
- 每次我在SFML中绘制列表项时,它都会崩溃
- Qt 当列表小部件项被单击两次时崩溃
- 复制列表时光荣崩溃
- 使用"pop_front"从排序列表中删除元素会导致崩溃
- C++STL列表崩溃,数字超过1000 000 000 000
- 当列表中有两个以上的项目时,链表的函数 add 会崩溃
- 应用程序在OpenCV的均衡化列表上崩溃
- 当添加一个指针到多个boost::ptr_vector列表时崩溃
- 删除循环列表中的节点时崩溃
- 复制链接列表会使程序崩溃
- 排序算法在试图打印列表信息时崩溃