我正在开发一款游戏,并希望当我创建一个对象时,它会被添加到一个数组中(因此它更容易绘制并且可能 改变坐标和东西)。 我只是不知道该怎么做。 如果它有帮助,我的功能是:
void CreateTile(string Texture, sf::Vector2f Pos)
{
sf::Texture texture;
texture.loadFromFile(Texture);
sf::Sprite Tile;
Tile.setTexture(texture);
Tile.setPosition(Pos);
}
提前致谢!
答案 0 :(得分: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 ++基础知识的好书,并阅读它的封面。没有捷径。如果你想编写游戏代码,你需要学习这门语言。