問題だった当たり判定後のプルプルが解決

Demo
このデモはA,S,D,Wキーで緑色のダイヤを動かすことができます。
上下方向の移動は押した方向に進み続けます。

あたり判定の開発初期から問題だった衝突後にキャラクタがボックスの上でプルプルする現象を修正できました。
まず、画面下側にある左のボックスに乗ってみてください。
これは、以前のままなのでボックスに乗るとプルプルします。
次に右側では、プルプルせずに止まっています。画面上の数値も変わることなく安定しています。
解決方法は意外と簡単でした。
まず、キャラクタにongroundというプロパティを作ってあげます。
このプロパティは、フレーム毎にキャラクタの動作処理をする最初に、falseに初期化されます。
次に、キャラクタがブロックの上から接触した場合このtrueを入れるようにして、ボックスに埋まった分を押し返し、落下速度を0にします。
最後に、このプロパティがfalseならば、重力分y方向に加速させtrueならば、何もしないとすると、プルプルしません。
ポイントは、ボックスに埋まった時に押し返す数値のようです。ちょうど埋没していないところまで押し返してしまうと落下処理が毎回入ってしまうので、数値上少し埋まっている状態を維持するといいようです。
次は、ボックスが長方形でもブロックとの衝突方向が分かるようにするために、中心点同士の距離をボックスの大きさの比に合せてみようかと思います。
Category: プログラム あたり判定

コメント

コメントの投稿

トラックバック