1
VC++で簡単なボールバウンシングプログラムを作った。
このプログラムの目標は、ボールが菱形でバウンスする必要があるということです。それは菱形から出ることはできません。
正常に動作しているようですが、左右の角にはまってしまいました。
この問題を解決する方法はありますか?私はボールが左右のコーナーに行くとき、反復の条件が重複していると思います...
この問題を解決するための他のアルゴリズムを提案できますか?
私はこの問題を
while(!isInside(getNextPos(circle))) { updateDirectionVector(circle); }
のようにしようとしましたが、ランダムな値が毎回変更されたため、このようにすることはできません。 (繰り返し使用するタイマー)
これは角を除いて動作するこのプログラムのアルゴリズムです。
C++ボールが菱形で跳ね返る
up:
while(1) goDownSideCircle;
if(StuckOnDownSide) goto down;
down:
while(1) goUpSideCircle;
if(StuckOnUpSide) goto up;
コードは本当にこのようにインデントされていますか?はいの場合、私はあなたが運が不足していることを恐れています...またはここに貼り付けるためにこれはですか? – Aamir
あなたはここに新しいLinuxカーネルを実装しようとしていませんか? ところで、gotoキーワードは償却されます。できるだけ避けてください。 – sarepta
あなたのコードを読んで理解しやすいようにするには、水平にスクロールする必要がないようにフォーマットする必要があります。また、すべての数値定数を記述的に名前の付いた定数に置き換え、計算結果を適切な名前の変数に結合します。 – irobot