2013-09-05 20 views
0

所以我有一个名为player的sprite。C++ SFML sprite位置在函数中不更新

如果我在循环进入

player.move(3,4); 

那么球员那么多的每一帧移动。

但是,如果我做一个功能。

int updatePlayerPos(sf::Sprite player1) 
{ 
player1.move(3, 4); 
return 0; 
} 

,然后调用,在使用

updatePlayerPos(player); 

它没有做任何事情,主循环。

我犯了什么错误?

在此先感谢。

回答

4

这是因为sprite是按值传递的,这意味着该函数有一个副本的精灵。您可以对副本进行任何操作,但原稿根本不会改变。您可能希望通过参考传递:

​​