Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 添加精灵时窗口关闭_C++_Sprite_Sfml - Fatal编程技术网

C++ 添加精灵时窗口关闭

C++ 添加精灵时窗口关闭,c++,sprite,sfml,C++,Sprite,Sfml,当我尝试使用我创建的函数时,我的窗口崩溃, 我用它在屏幕上创建一个精灵,但由于某种原因它崩溃了 我得到一个错误: 分段故障(堆芯转储) 这是我的代码: #include <SFML/Graphics.hpp> #include <SFML/System.hpp> #include <string> #include <unistd.h> #include <iostream> #include <vector> using

当我尝试使用我创建的函数时,我的窗口崩溃, 我用它在屏幕上创建一个精灵,但由于某种原因它崩溃了

我得到一个错误:

分段故障(堆芯转储)

这是我的代码:

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

using namespace std;

vector<sf::Sprite*> Tiles;

void createTile (string TextureIN, int x, int y) {

    sf::Vector2f Pos(x, y);

    sf::Texture Texture;
    Texture.loadFromFile(TextureIN);

    sf::Sprite *Tile;
    Tile->setTexture(Texture);
    Tile->setPosition(Pos);

    Tiles.push_back(Tile);
}

int main()
{
    sf::RenderWindow window(sf::VideoMode(800, 600), "My window");

    createTile("Recources/grass.png", 50, 50);

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

    window.clear(sf::Color::Blue);

    for (int i; i < Tiles.size(); i++) {
        window.draw(*Tiles[i]);
    }

    window.display();

    }

    return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
矢量瓦片;
void createTile(字符串TextureIN、int x、int y){
矢量2f位置(x,y);
sf::纹理;
Texture.loadFromFile(TextureIN);
sf::雪碧*瓷砖;
瓷砖->设置纹理(纹理);
瓷砖->设置位置(Pos);
瓷砖。推回(瓷砖);
}
int main()
{
sf::RenderWindow(sf::VideoMode(800600),“我的窗口”);
createTile(“resources/grass.png”,50,50);
while(window.isOpen())
{
sf::事件;
while(window.pollEvent(事件))
{
如果(event.type==sf::event::Closed)
window.close();
}
窗口。清除(sf::颜色::蓝色);
对于(int i;i
我以前有一个工作版本,但我的电脑崩溃了,我忘记了
备份>您正在创建一个没有正确内存分配的指针

所以不是

sf::Sprite *Tile; 
使用


请务必也查看一下。

您正在创建一个没有正确内存分配的指针

所以不是

sf::Sprite *Tile; 
使用

也一定要看一看