0

3点(三角で表示)を持つCircularShapeという名前の車と、円形の円形のフィールドを定義しました フィールドは車の先端車の先端に沿って移動するが、問題は私がプログラムを実行するときに、彼らは一緒に動いていないいくつかのあいまいな行動がある私は位置と両方の形状の起源といくつかの問題があると思う私は、将来のいくつかの目的のために変更することはできません。それは私だけのリンクを掲載しているcodepad.orgで実行されていないでしょう勿論また誰かがコードSFMLで2つのCirclarShapeオブジェクトを一緒に移動したり回転させたりすることはできません

http://codepad.org/CJ0JR6Qc

私は私の車+フィールドは、ここでウィンドウ境界 の外に移動しないことを保証することができますどのように私をされて提案することができますコンビニエンス目的のため

答えて

0

現在、ゲームのループがないため、コンピュータの処理速度に依存するため、動きはすべて予測できません。

さらに評価するには、コードが呼び出されるたびに車が10ピクセル移動すると仮定します。あなたのプロセッサが高速でコードを1秒に100回走らせることができるなら、車は100 * 10ピクセル= 1000ピクセル/秒で移動します。コンピュータが1秒間に10回しかコードを実行できない場合、車は10 * 10ピクセル= 100ピクセル移動します。

ゲームループの原則をお読みください。すでにsfmlフォーラムには多くの質問があり、サイトでの時間測定に関するチュートリアルがあります(http://www.sfml-dev.org/tutorials/2.4/system-time.php参照)。

あなたの図形やエンティティなどを確実にするために、特定の地域から移動しないでください。ゲームループ内のすべてのポジションを最初に更新し、新しいポジションが許可されているかどうかを確認する必要があります。あなたの例では、あなたの図形の位置が0より小さいか、ウィンドウサイズより大きいかどうかをチェックします。この質問は、すでにsfmlフォーラムで何度も評価されています。フォーラムで「バウンディングボックス」を検索すると、より良いヘルプが見つかるはずです。

これが役に立ちます。最高の願い、

Essi

関連する問題