0

だから私はプレイヤーという名前のスプライトを持っています。

入れば

player.move(3,4);

私のループでは、プレーヤーはフレームごとにそれだけ動きます。

ただし、関数を作成すると。

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

そして、それをメインループで呼び出します

updatePlayerPos(player);

何もしません。

私はどんな間違いをしていますか?

前もって感謝します。

4

1 に答える 1

4

これは、スプライトが値で渡されるためです。つまり、関数はスプライトのコピーを持っています。コピーは何でもできますが、オリジナルはまったく変わりません。代わりに参照渡しする必要があります。

int updatePlayerPos(sf::Sprite& player1)
//                            ^
//          Note the ampersand
于 2013-09-05T11:14:47.997 に答える