1人でゲームが作れるように修行します。2 (487レス)
上下前次1-新
239(1): 名前は開発中のものです。 [sage] 2011/05/09(月) 03:54:43.87 ID:FkwWv0YK(2/2) AAS
>>233233(3): SGGK ◆6pZCoAtaxk [sage] 2011/05/08(日) 22:55:14.85 ID:MKRAe4w3(1) AAS
今日もあまり進まず。
当たり判定クラスの中に作った矩形当たり判定用メンバ関数は最初は、
bool CollisionCheck::isHit(FieldPlayer *, BallData *);//選手とボールの当たり判定
のようなものを考えていたけど、
bool CollisionCheck::isHit(VECTOR,int,int,VECTOR,int,int);//引数:オブジェクト座標、当たり矩形縦、横、オブジェクト座標、当たり矩形縦、横
に変更してみた。1番目の方は選手とボールにしか使えないけど、2番目のようにすれば汎用性が高いのではと考えたのが理由。
ボールをけるボタンを押したときに選手とボールのあたりが真なら、ボールが一定の速度で移動するようにするつもり。
そのときに何回ループしたらボール停止というのではなく、ボールの速度が少しずつ0に近づき、0になったら停止するようにしたいけど、
物理を忘れてしまってるし、当時の記憶がよみがえったとしても問題は解けなかったと思うので、
紙に点と矢印を書いて、どうするか考えてるところ。
物理的には、
・重力
・跳ね返りによるロス…地面やゴールポストとのバウンドの際、運動エネルギーの一部が消失
・ころがり摩擦抵抗…ボールが着地しているときのみ
・空気抵抗…ボールの高度に関わらず場の空気の流れ(風)との速度差に応じて加速
風が無い環境なら、極端な例だと紙風船を思い切り投げたときのようになります。
・ボールのスピン…減速要因ではありませんが空気抵抗による曲げ加速の一種
空気抵抗に配慮するなら合わせて検討してみてください。
などが考えられます。
ちなみに摩擦によるボールの減速については、ボールの速度ベクトル(の水平成分)に対して
1より小さい数(0.995とか)を毎フレームごとに掛けるという簡易な方法でも、それらしく見えると思います。
上下前次1-新書関写板覧索設栞歴
あと 248 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.015s