2016-04-22 3 views
0

SFMLを使ってC++で2Dゲームをしようとしています。私はスプライトを描きましたが、今度はそのスプライトを自動的にランダムな方向に移動させたいと思います。壁に当たったときに、それは跳ね返って方向を変えます。私はどのように壁から飛び跳ねるスプライトを自動移動するのかわからない...だから私を助けてください。C++ SFML - バウンドスプライトの作成方法

答えて

1

sf::Spriteは、あなたがそれが描かれています前に、スプライトの位置を設定するために使用できるメンバ関数setPosition (float x, float y)を持っています。スプライトを各フレームの新しい位置に移動することによって、漫画のように動きの印象を作ります。壁のようにシーン内の他の要素の位置とスプライトの位置を比較することにより、2つのオブジェクトがヒットしたときを計算し、適切なアクションをとることができます。一般的に、それは次のように動作します。

  • 新しいフレームの開始時に時計をリセットし、あなたは、例えばsf::ClockまたはC++のクロノを使用することができます。
  • アップデートのようなもので移動しなければならないシーン内のすべての要素の位置:ObjectSpeed * Previous frame time
  • フレームを描き
  • 保存時間がループ
を次のフレームを計算するための経過
関連する問題