• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:坂道を転がる動きをご教授願いたい)

坂道を転がるボールの動きを作成する方法

このQ&Aのポイント
  • Flash8で任意の角度で坂道を転がるボールの動きを作成していますが、うまくいきません。
  • ボールが予想外の方向に動いてしまい、どこが間違っているのかわかりません。
  • 力や摩擦係数などのパラメーターに問題がある可能性があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • perse
  • ベストアンサー率74% (113/152)
回答No.1

//角度 rot = 30; //転がるmc、ballの質量 m = 0.5; //静止摩擦係数 ius = 0.05; //運動摩擦係数 iuk = 0.07; //時間 t = 0; tt = 1/30; //重さ w = m*9.8; //坂道のmc、saka saka._rotation = rot; //垂直抗力 N = w*Math.cos(rot*Math.PI/180); //転がる力 Fp = w*Math.sin(rot*Math.PI/180); //静止摩擦力 Fs = ius*N; //運動摩擦力 Fk = iuk*w; a = new Array(); Fk_p = [Fk*Math.cos(rot*Math.PI/180), Fk*Math.sin(rot*Math.PI/180)]; Fp_p = [Fp*Math.cos((rot-180)*Math.PI/180), Fp*Math.sin((rot-180)*Math.PI/180)]; Fnet = [Fp_p[0]+Fk_p[0], Fp_p[1]+Fk_p[1]]; a[0] = Fnet[0]/0.5; a[1] = Fnet[1]/0.5; saka.onEnterFrame = function() { // 転がるかどうかの判定 if (Math.abs(Fp)>Math.abs(Fs)) { // 加速度を出してx、yに代入 t = t+tt; _root.ball._x -= 0*t+1/2*a[0]*t*t; _root.ball._y -= 0*t+1/2*a[1]*t*t; } }; でどうでしょうか?

tashima
質問者

お礼

転がりました! ポイントは 運動摩擦力を出す時、垂直効力ではなく、 重さを掛けるところと、 転がるかどうかの判定が絶対値、 Fp_pを出す時、角度を先に求める、 代入の仕方が-である点でしょうか。 とても参考になりました。 ありがとうございます。

関連するQ&A