2017-03-01 57 views
-3

我正在一个游戏,并希望当我创建一个对象时,它被添加到一个数组(因此它更容易画,也许 改变坐标和东西)。 我只是不知道该怎么做。 如果它帮助这里是我的功能:sfml - 把所有的对象在数组

void CreateTile(string Texture, sf::Vector2f Pos) 
{ 
    sf::Texture texture; 
    texture.loadFromFile(Texture); 
    sf::Sprite Tile; 
    Tile.setTexture(texture); 
    Tile.setPosition(Pos); 
} 

在此先感谢!

+2

搜索'std :: vector'。 – nwp

+3

为什么你在没有掌握C++基础知识的情况下制作游戏? – DeiDei

+0

http://en.cppreference.com/w/cpp/container – domsson

回答

0

您可以使用标准库中的容器,最基本的是std::vector<>sf::Texture对象是不应该被不必要地复制的重物。你应该把它们放在一个地方,只需要参考

std::vector<sf::Sprite*> sprites; 
std::vector<sf::Texture*> textures; 

void CreateTile(const std::string& file, const sf::Vector2f& position) 
{ 
    sf::Texture* texture = new sf::Texture(); 
    texture->loadFromFile(file); 

    textures->push_back(texture); 

    sf::Sprite* tile = new sf::Sprite(); 
    tile->setTexture(*texture); 
    tile->setPosition(position); 

    sprites->push_back(tile); 
} 

而且因为这旨在成为现代C++,你应该不是像上面使用原始指针。使用智能指针如std::shared_ptr

警告:该解决方案不会只是复制此代码,并希望它以某种方式工作。获取关于C++基础知识的好书,并阅读其封面。没有捷径。如果你想编码一个游戏,你需要学习这门语言。