我已经开始使用SFML库为大学课程创建一个图形化的战舰游戏,目前我正在创建4个矩形来在窗口周围创建一个边框(如果有更简单的方法,请告诉我,但我想继续4个矩形的想法)
我的问题是,我在屏幕上绘制了第一个矩形,并对其进行了调试,它工作得很好,但随后我绘制了第二个矩形,它抛出了以下错误
Unhandled exception at 0x00656A0E (sfml-graphics-d-2.dll) in Battleships.exe: 0xC0000005: Access violation reading location 0x00000004下面是我的代码:
矩形被称为a和b(抱歉,命名混乱)
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <iostream>
int main()
{
sf::RenderWindow menu(sf::VideoMode(800, 600), "SFML works!");
sf::RectangleShape a(sf::Vector2f(800, 20));
a.setFillColor(sf::Color::White);
sf::RectangleShape b(sf::Vector2f(20, 600));
b.setFillColor(sf::Color::White);
sf::Font font;
if(!font.loadFromFile("arial.ttf"))
{
std::cout << "ERROR: Cannot load font" << std::endl;
}
sf::Text text("TEST", font, 80);
text.setPosition(sf::Vector2f(400/2.0f,300/2.0f));
text.setColor(sf::Color::White);
menu.clear();
menu.draw(a);
menu.draw(b);
menu.display();
}发布于 2014-12-29 07:22:44
sf::Font font;
if(!font.loadFromFile("arial.ttf"))
{
std::cout << "ERROR: Cannot load font" << std::endl;
}您需要在这一点上停止,即从main返回。Font没有加载,然后在以后使用它,导致空指针取消引用。
https://stackoverflow.com/questions/27681530
复制相似问题