0

作成しようとしているゲームで動きやレベルアップなどを処理する「プレーヤー」という名前のクラスがあります。メイン ソース ファイルのメイン ループには、キーボード イベント (左/右) があります。キャラクターが許可されている場所を通り過ぎたときに、その動きを認識できるようにしたいと考えています。問題に答えるために、2 つの if ステートメントを配置しました。

私はこのifステートメントにのみ問題があります:

else if (sf::Keyboard::IsKeyPressed(sf::Keyboard::Right)) {
            if (Player.getX() > 1279) {
                Player.move(640,0);
            }
            Player.move(0.1,0);
        }

コンパイルの問題はありません。唯一の問題は、他の if ステートメントとは異なり、これはスプライトを目的の位置に戻さないことです。if ステートメントを 1000 程度に下げると、スプライトが画面から消えます。

どんな助けでも感謝します。

4

1 に答える 1

2
Player.move(640,0);

X 軸上でプレーヤーを 640 ピクセル移動します。これは、プレイヤーが に到達したときx > 1279、つまり世界の右端に到達したときに、プレイヤーをさらに右に移動させることを意味します。だから消える。

setPositionここの代わりに使用するmoveか、単にプレーヤーを動かさないでください...

于 2012-09-06T08:26:16.840 に答える