2013-09-05 16 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是按值傳遞的,這意味着該函數有一個副本的精靈。您可以對副本進行任何操作,但原稿根本不會改變。您可能希望通過參考傳遞:

​​