2017-04-12 79 views
1

当我绘制精灵时,我的窗口关闭。绘图时出现分割错误

这绝对是它的绘图部分,因为当我将它保留在 我的代码中时,它工作正常,除非它不绘制我的精灵。 Segmentation fault (core dumped)

我不知道这意味着什么:

而且运行时,我得到这个错误/。

这里是我的代码:

#include <SFML/Graphics.hpp> 
#include <SFML/System.hpp> 
#include <SFML/Audio.hpp> 
#include <string> 
#include <iostream> 
#include <vector> 

using namespace std; 

//create vars 
sf::Color bgColour(20, 175, 215); 
vector<sf::Sprite> tiles; 

void CreateTile(string Texture, int x, int y) 
{ 
    sf::Vector2f Pos(x, y); 

    sf::Texture Ftexture; 
    Ftexture.loadFromFile(Texture); 
    sf::Sprite Tile; 
    Tile.setTexture(Ftexture); 
    Tile.setPosition(Pos); 

    tiles.push_back(Tile); 
} 

int main() 
{ 
    //create window 
    sf::RenderWindow window(sf::VideoMode(800, 600), "-\\\\-(Game)-//-"); 

    CreateTile("Recources/grass.png", 40, 40); 

    //main loop 
    while (window.isOpen()) { 

     sf::Event event; 

     while (window.pollEvent(event)) {    
      if (event.type == sf::Event::Closed) { 
       window.close(); 
      }    
     } 

     window.clear(bgColour); 
     window.draw(tiles[1]); 
     window.display(); 
    } 

    return 0; 
} 

谢谢!

回答

1

您正试图访问不存在的矢量元素。

改变这种

window.draw(tiles[1]); 

这个

window.draw(tiles[0]);