質問

私は何をしようとしていることのVisual Studioを使用して、Visual Basicでシミュレート発射の動きがあります。基本的に、こののnoreferrer">が、空気抵抗や質量のない

他のヒント

ここで貴重なクロック・サイクルを最小限に抑えるために絶対的な最も簡単な例です。

// Initialization
x = 0; // x position
y = 0; // y position
xi = 0.1; // x incremental value (velocity)
yi = 0.1; // y incremental value (velocity)

// Rendering loop
x += xi;
y += yi;
yi -= 0.01; // decrement by arbitrary value to simulate gravity

アイデアはインクリメンタル変数xiとyiのを使用し、それらにあなたの力のすべてを実行することです。あなたが探している効果を得るために数字を微調整することができます。あなたはさらに一歩それを取るしたい場合、あなたは簡単にすべての繰り返しで、それらの増分変数を調整する乗算器を使用することにより、摩擦や空気抵抗を適用することができます。

これは、私は、粒子のエンジンや、そのような中で何回も使用してきた基本的な方法です。あなたは三角関数のいずれかに任意の呼び出しを行っていないので、それは非常に高速であるという利点を持っており、それが大きな粒子エンジンにうまくスケールます。

UPDATE:

ここでは、地球の重力の計算式から数値を使用して、この方法の例があります: のhttp:// WWW .forums.evilmana.com /ゲームプログラミング - 理論/オイラー-VS-verlet-VS-RK4-物理学/?WAP2

それはまださえ-9.8値とタイムステップ変数と単純なコードです。私のコードは、ちょうどそれができる最も簡単な絶対に最適化されています。

セットX =発射以来の総時間

Y = -0.5 * A * X * X + V * X + InitialHeight

A =所望の加速。地球の加速度(すなわち重力)が約あります9.8メートル/秒の二乗しました。

V =アップ方向にあなたの初速

InitialHeightはあなたの例ではゼロですが、あなたがしたい場合は、より高い出始めることができます。

EDITます:

もう一つのポストの状態

  

X = Vの*のCOS(A)* T + G *さt *のT / 2

     

Yは、V * Sinを=(A)* T - グラム*さT * T / 2

これは本質的に同じ式であるが、任意+ InitialHeightパラメータを残す。

私の文の「アップ方向の速度は、」彼の式V(合計速度)*罪(A)と同じである。

私は簡単にするために(時間)をtにXを同一視、が、x = Vの*のCOS(A)は、物理的な距離に時間をマッピングすることができます。私の簡素化では、私はあなたが本当に単位は(またはしない場合があり、有効な仮定でもよい)X軸上にある正確に何を気にしないでくださいと想定ます。

あなたがのためのQuickBasic ソースコードするで見ることができます」 ゴリラの」ゲームは最初のMS-DOS 5に含まれているそれはに重力のアカウントを取りましたあなたが記述正確な方法で投げバナナの動きをアニメーション化。

私の知る限りではBasic言語の数学の部分は当時から変更されていません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top