厨房なおいらにプログラム教えるスレ
■ このスレッドは過去ログ倉庫に格納されています
0237社内ニート ◆OpY5DDvqSw
2011/02/18(金) 01:08:24ID:2Ex7ENec弾の軌道は2時関数の放物線軌道といっていますが、
そこに時間の概念も加えないといけません。
弾が等速で動くわけではないということが重要です。
私が最初に考えていたのは、
x=0、y=0の座標を発射地点
発射角度を r (ラジアン)
発射パワーを p
重力は 1
cx1,cy1は時間(1ループ)ごとの増加座標
cx2,cy2は弾の存在位置です
cx1=p*cos( r );
cy1=-p*sin( r );
while(以下、座標計算と表示を繰り返す)
{
cy1=cy1+1; //時間当たりの増加分、重力を加算し続ける
cx2=cx1+cx2; cy2=cy1+cy2; //弾の存在位置、cx1,cy1の累積
x=cx2 , y=cy2 に弾を表示
}
これに、重力と同じように風の影響も加えたものは以下のような結果になりました。
ttp://218.219.242.231/~kuroneko/imgboard1/img-box/img20110218003141.jpg
もっときれいに滑らかに表示されるように調整します。
その上で問題になるのが、やはり地形との当たり判定です。
どこで当たるのか、どのタイミングで当たるのか。それが問題です。
■ このスレッドは過去ログ倉庫に格納されています