2016-07-11 6 views
-1

私は最近、SFMLを学び始めました。質問があります。どのように軌道上を移動する2体目を作るのか、助けてください。C++ SFML

#include <SFML/Graphics.hpp> 
using namespace sf; 
int main() 
{ 
    RenderWindow window(VideoMode(800, 600), "Hello, world!"); 

    CircleShape shape(50.f); 
    shape.setFillColor(Color::Black); 
    shape.setPosition(400,300); 
    shape.setOrigin(50,50); 

    CircleShape shape2(10.f); 
    shape2.setFillColor(Color::Black); 
    shape2.setPosition(700,500); 
    shape2.setOrigin(10,10); 

    while (window.isOpen()) 
    { 
     Event event; 
     while (window.pollEvent(event)) 
     {  
      if (event.type == sf::Event::Closed)   
       window.close(); 

     } 
     window.clear(Color::White); 
     window.draw(shape); 
     window.draw(shape2); 
     window.display(); 
    } 
    return 0; 
} 

答えて

2

まあ...私は完全な解決策を投稿しません。完全なコードを与えることは教育的ではありません。しかし、私はあなたにいくつかのヒントを与えるでしょう:)。

  1. あなたの世界のアップデートはループ内で行われます。 whileループで。あなたはそこに2人いる。あなたの世界を更新するものはどれですか?
  2. デカルト座標系の円の式は次のとおりです。(x-a)^2 + (y-b)^2 = r^2
  3. 1からのループでは、2番目の式(shape2)の座標を更新する必要があります。
  4. ポイント3からアクションを実行するには、機能と機能move(両方ともCircleShape)の2つの可能性があります。

さらにご質問がありましたら、コメントにお尋ねください。

スタックに関する今後の質問については、問題を解決するための努力をしていることを証明してください。質問が私が今答えているように見えたら、あなたはそれをここに掲示しておらず、誰かがあなたのコードを書くのを待っていると思っているという考えがあります。