7 |
Pongの開発 (13) |
パドル動作
完成したADCとパドルVRの連携を以下の動画に示します。パドルの描画アルゴリズムは
- 新しいADCの値を取得
- ADCの値を要素8の移動平均化(フラつき防止のため)
- 閾値4と移動値(ADC値-現在値)を比較し、閾値を超えていたら移動(フラつき防止のため)
- 移動値を座標制限内にクリッピング
- 移動の際には現在のパドル像を消去(ゴミ残り防止のため)
- 前回値と同じであれば書き換えをしない(チラつき防止のため)
ボール動作
ボールがパドルと衝突する判定は、ボール座標のVRAMデータを読み出して行います。右パドルのVRAMデータは3であるため、移動のたびにボール座標を読み出し3であれば衝突と判断します。
パドルのy座標範囲は0~25であり、これを①0~5,②6~12、③13~19、④20~25の4領域に分割します。①に衝突した場合は-45°の角度で反射し、②は約-18.4°の角度で反射します。これをxとyの増分であるdx, dyに変換すれば、-45度の場合はdx=1, dy=-1であり、-18.4度の場合はdx=3, dy=-1です。