簡単なボールバウンス実験用のクラスを作成しようとしていますが、どこが間違っていますか?

ブロディ・グリッグス

私はC ++でのプログラミングに非常に慣れていないので、SFMLを使用して、跳ね返るボールを作成できる簡単なプログラムを作成しようとしています。しかし、私は物理学のシムに着く前に立ち往生してしまいました。ボールクラスが機能していないようです。これを使用して、作成された各ボールの変数を格納し、関数を更新および描画したいと思いました。しかし、ある種のエラーが発生するたびに、明らかに非常に単純なものについてのヘルプを見つけることができません。

#include <iostream>

#include <SFML\Audio.hpp>
#include <SFML\Graphics.hpp>
#include <SFML\Network.hpp>
#include <SFML\System.hpp>
#include <SFML\Window.hpp>


class Ball
{
public:

    // vector for position
    sf::Vector2 pos(100,100);

    // vector for velocity
    sf::Vector2 vel(0,0);

    void update()
    {
        // factors influence velocity
        // update position based on velocity
        pos.x += vel.x;
        pos.y += vel.y;
    }

    void draw()
    {
        // draw ball to the window using position vector
        sf::circleShape circle(10);
        circle.setPosition(pos.x,pos.y);
        circle.setFillColor(sf::Color::White);
        window.draw(circle);
    }
};

int main()
{
    /*create window settings*/
    sf::ContextSettings settings;
    settings.antialiasingLevel = 8; // set the antialiasing level

    /*create window*/
    sf::RenderWindow window;
    window.create(sf::VideoMode(800, 600), "Simple Physics", sf::Style::Default, settings);

    /*create ball(s)*/
    Ball ball01;

    /*Main loop*/
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            // "close requested" event: close the window
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear(sf::Color::White);

        // call ball.update(); and ball.draw();
        ball01.update();
        ball01.draw();

        window.display();
    }
}

事前に感謝します、どんな助けや批評も大歓迎です!

seccpur

このスニペットを試してください:

1)背景色はボールの色とは異なる必要があります。

2)window.setFramerateLimit()を使用して、アニメーションの速度を落とします。

3)ボールが視界から外れないように境界条件を使用します。

4)Draw()も修正が必要です

class Ball
{
public:

    // vector for position
    sf::Vector2f pos{ 100, 100 };

    // vector for velocity
    sf::Vector2f vel{ 1, 1 };

    void update()
    {
        // factors influence velocity
        // update position based on velocity
        pos.x += vel.x;
        pos.y += vel.y;

        if (pos.x > 800 || pos.x < 0) vel.x = -vel.x; //boundary cond
        if (pos.y > 600 || pos.y < 0) vel.y = -vel.y; //boundary cond
    }

    void draw(sf::RenderWindow& window)
    {
        // draw ball to the window using position vector 
        sf::CircleShape circle(10);
        circle.setPosition(pos.x, pos.y);
        circle.setFillColor(sf::Color::White);

        window.draw(circle);
    }
};

int main()
{
    /*create window settings*/
    sf::ContextSettings settings;
    settings.antialiasingLevel = 8; // set the antialiasing level

                                    /*create window*/
    sf::RenderWindow window;
    window.create(sf::VideoMode(800, 600), "Simple Physics", sf::Style::Default, settings);

    /*create ball(s)*/
    Ball ball01;

    window.setFramerateLimit(60); //slow down speed
    /*Main loop*/
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            // "close requested" event: close the window
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear(sf::Color::Black); // ball is white so make backgnd black

        // call ball.update(); and ball.draw();
        ball01.update();
        ball01.draw(window);
        window.display();
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

私の考えはどこが間違っていますか?ブラウザは単純な<div>ボックスをスケーリングします

分類Dev

シンプルなジャージの安らかなWebサービスHelloWorldを実行しようとしていますが、機能しません。誰かが私が間違っているところを確認できますか?

分類Dev

ボックスシャドウアニメーションを作成して側面で跳ね返らせるにはどうすればよいですか?私はどこが間違っていますか?

分類Dev

Ajaxを使用しているときに、コールバックを機能させることができません。コールバックを待っていないようですが、何が間違っているのですか?

分類Dev

CSS>ボタンのスタイルを設定しようとしています-もっと簡単な方法があるはずです

分類Dev

.txtファイルを単語の辞書に変換しようとしています。どこが間違っているのですか?(C#)

分類Dev

ページのチェックボックスがオンになっているかどうかを確認しようとしています

分類Dev

Pythonのどの機能がこの式を作成し、角かっこにブール式が含まれていて、それがインデックスまたはキーであるかのように有効になっていますか?

分類Dev

最長と最短の単語の長さを印刷しようとしていますが、どこが間違っているのかわかりません

分類Dev

これらのWebサイトは、下部に[詳細]ボタンがあり、ブラウザーでどのようにフルスクリーンになっていますか(ページを自動的に下に移動します)

分類Dev

FitNesseが間違ったバージョンのJavaを実行しようとしています

分類Dev

LinuxをPCにインストールしようとして燃え尽きてしまった.....私は何が間違っているのですか?

分類Dev

作業単位の呼び出しでコントローラーをテストしようとして、私が間違っていることを誰かに見せてもらえますか?

分類Dev

汎用の単一リンクリストを初めて作成しようとすると、未定義のシンボルエラーが発生します

分類Dev

Xamarinをアップグレードすると、「クラスファイルのバージョン52.0が間違っています。50.0になるはずです」というエラーが発生します。

分類Dev

.txtからテキストを読み取ってコンソールに表示することになっていますが、コードが機能していません。どこに間違いがありますか?

分類Dev

yumが間違ったバージョンのnode.jsをインストールしようとしているのはなぜですか?

分類Dev

html、cssで簡単なプログレスバーを作成しようとしています。しかし、私のdivは重複しています

分類Dev

Laravelパスポートを使用してAPI認証を作成しました。認証トークンが間違っていると、「ルート[ログイン]が定義されていません」というエラーが送信されます。

分類Dev

AndroidのfragmetでPiChartを作成しようとしましたが、クラスが見つからなかったという期待を抱いています

分類Dev

どのように私は「スーパー()」に引数を渡すために無用パススルー子クラスのコンストラクタを作成しないようにすることができますか?

分類Dev

ボタンに想定どおりの出力をさせるにはどうすればよいですか?ボタンは平均を作成してテキストで出力することになっていますが、これは行われません。

分類Dev

私はこのボールを1日バウンドさせようとしています。なぜそれが機能しないのですか?

分類Dev

私が間違っていることを理解しようとしています-リンクリストY86の反復合計

分類Dev

私のJavaクラスで何が起こっているのかを理解しようとしています

分類Dev

これにダイクストラのアルゴリズムを適用する際にどこが間違っているのでしょうか?

分類Dev

やあみんなこのコードで私が間違っているのは何ですか。13195のすべての素因数を空のリストに追加しようとしていますが、空のリストが表示されます

分類Dev

クラスが多くのインターフェイスを実装していることをどのようにテストできますか?

分類Dev

phpMyAdmin SQLのデフォルトの間違った文字エンコードを修正するにはどうすればよいですか?(SQLステートメントの単一引用符は構文エラーを生成しています)

Related 関連記事

  1. 1

    私の考えはどこが間違っていますか?ブラウザは単純な<div>ボックスをスケーリングします

  2. 2

    シンプルなジャージの安らかなWebサービスHelloWorldを実行しようとしていますが、機能しません。誰かが私が間違っているところを確認できますか?

  3. 3

    ボックスシャドウアニメーションを作成して側面で跳ね返らせるにはどうすればよいですか?私はどこが間違っていますか?

  4. 4

    Ajaxを使用しているときに、コールバックを機能させることができません。コールバックを待っていないようですが、何が間違っているのですか?

  5. 5

    CSS>ボタンのスタイルを設定しようとしています-もっと簡単な方法があるはずです

  6. 6

    .txtファイルを単語の辞書に変換しようとしています。どこが間違っているのですか?(C#)

  7. 7

    ページのチェックボックスがオンになっているかどうかを確認しようとしています

  8. 8

    Pythonのどの機能がこの式を作成し、角かっこにブール式が含まれていて、それがインデックスまたはキーであるかのように有効になっていますか?

  9. 9

    最長と最短の単語の長さを印刷しようとしていますが、どこが間違っているのかわかりません

  10. 10

    これらのWebサイトは、下部に[詳細]ボタンがあり、ブラウザーでどのようにフルスクリーンになっていますか(ページを自動的に下に移動します)

  11. 11

    FitNesseが間違ったバージョンのJavaを実行しようとしています

  12. 12

    LinuxをPCにインストールしようとして燃え尽きてしまった.....私は何が間違っているのですか?

  13. 13

    作業単位の呼び出しでコントローラーをテストしようとして、私が間違っていることを誰かに見せてもらえますか?

  14. 14

    汎用の単一リンクリストを初めて作成しようとすると、未定義のシンボルエラーが発生します

  15. 15

    Xamarinをアップグレードすると、「クラスファイルのバージョン52.0が間違っています。50.0になるはずです」というエラーが発生します。

  16. 16

    .txtからテキストを読み取ってコンソールに表示することになっていますが、コードが機能していません。どこに間違いがありますか?

  17. 17

    yumが間違ったバージョンのnode.jsをインストールしようとしているのはなぜですか?

  18. 18

    html、cssで簡単なプログレスバーを作成しようとしています。しかし、私のdivは重複しています

  19. 19

    Laravelパスポートを使用してAPI認証を作成しました。認証トークンが間違っていると、「ルート[ログイン]が定義されていません」というエラーが送信されます。

  20. 20

    AndroidのfragmetでPiChartを作成しようとしましたが、クラスが見つからなかったという期待を抱いています

  21. 21

    どのように私は「スーパー()」に引数を渡すために無用パススルー子クラスのコンストラクタを作成しないようにすることができますか?

  22. 22

    ボタンに想定どおりの出力をさせるにはどうすればよいですか?ボタンは平均を作成してテキストで出力することになっていますが、これは行われません。

  23. 23

    私はこのボールを1日バウンドさせようとしています。なぜそれが機能しないのですか?

  24. 24

    私が間違っていることを理解しようとしています-リンクリストY86の反復合計

  25. 25

    私のJavaクラスで何が起こっているのかを理解しようとしています

  26. 26

    これにダイクストラのアルゴリズムを適用する際にどこが間違っているのでしょうか?

  27. 27

    やあみんなこのコードで私が間違っているのは何ですか。13195のすべての素因数を空のリストに追加しようとしていますが、空のリストが表示されます

  28. 28

    クラスが多くのインターフェイスを実装していることをどのようにテストできますか?

  29. 29

    phpMyAdmin SQLのデフォルトの間違った文字エンコードを修正するにはどうすればよいですか?(SQLステートメントの単一引用符は構文エラーを生成しています)

ホットタグ

アーカイブ