Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
所以我有一个名为 player 的精灵。
如果我输入
player.move(3,4);
在我的循环中,玩家每帧移动那么多。
但是,如果我做一个函数。
int updatePlayerPos(sf::Sprite player1) { player1.move(3, 4); return 0; }
然后在主循环中使用
updatePlayerPos(player);
它不做任何事情。
我犯了什么错误?
提前致谢。
这是因为精灵是按值传递的,这意味着函数有一个精灵的副本。您可以对副本做任何事情,但原件根本不会改变。您可能希望通过引用传递它:
int updatePlayerPos(sf::Sprite& player1) // ^ // Note the ampersand