ジャンプの物理計算
今、坂をすべってジャンプするってカジュアルゲームを作っています。
速度がいくつだとどのくらい飛ぶとか計算するのですけど、どのくらいがゲームバランス的に丁度いいか試している最中な訳であります。
毎回ノートに書いて計算するのも面倒なので簡単なスクリプトを作ってみました。
https://gist.github.com/yokochi/df28d0e7f268f5435a2c
例えば、初速度40m/s、角度25°、高さ50mの所から飛んだ場合だとこんな感じで使います。
irb(main):028:0> Physics.jump(40, 25, -50) => {:x=>194.14367116175816, :y=>14.580097563814721, :t=>5.355345996654977, :v_f=>-35.5776602975908, :v_i_x=>36.252311481465995, :v_i_y=>16.904730469627978, :max_height_x=>62.534240254610445}
返ってくる値の意味はこんな感じ
{x: 水平方向の飛距離, y: 最大高さ, t: 着地までの時間, v_f: 着地時の速度, v_i_x: x方向の初速度, v_i_y: y方向の初速度, max_height_x: 最大高さ時のxの距離}