【发布时间】:2020-12-07 20:00:20
【问题描述】:
我正在使用带有 SFML lib 的 C++ 制作游戏,我主要创建了几个函数。我知道主要这样做是一种不好的方式,但是是的。当我尝试编译代码时出现错误:
src/main.cpp: In function 'void create_platforms(std::vector<std::unique_ptr<sf::Sprite> >&)':
src/main.cpp:12:6: error: no previous declaration for 'void create_platforms(std::vector<std::unique_ptr<sf::Sprite> >&)' [-Werror=missing-declarations]
void create_platforms(std::vector<std::unique_ptr<sf::Sprite>>& platforms)
^~~~~~~~~~~~~~~~src/Player.cpp:
In member function 'void Player::gravity(sf::Time&, sf::FloatRect&)':
create_items 和 create_interface 也是如此。我没有为 main.cpp 使用任何头文件,我可以在 main.cpp 中声明它们吗?如果是这样,如果有人能帮助我怎么做,我会很高兴。
void create_platforms(std::vector<std::unique_ptr<sf::Sprite>>& platforms)
{
[...]
}
void create_items(std::vector<std::unique_ptr<sf::Sprite>>& healing_items)
{
auto small_heart = std::make_unique<sf::Sprite>();
small_heart->setTexture(*TextureManager::getTexture("heart"));
small_heart->setPosition(320, 180);
small_heart->setScale(0.4, 0.4);
healing_items.emplace_back(std::move(small_heart));
}
void create_interface(std::vector<std::unique_ptr<sf::Sprite>>& interface)
{
auto life = std::make_unique<sf::Sprite>();`enter code here`
life->setTexture(*TextureManager::getTexture("life"));
life->setPosition(10, 530);
interface.emplace_back(std::move(life));
}
int main()
{
[...]
}
【问题讨论】:
-
您是否在sfml-dev.org/community.php 上提交了错误报告?