2012-01-08 10 views
0

私は空を飛んでいる矢印をプログラムしようとしていますが、速度はよく見えません。矢印の速度

今、矢印が非常に遅く動きます。 sampleです。

(私は矢印を知っているし、軌道は100%一致していない、それだけのサンプルです。)

//... 

var inity0:Number = 50; 
var initangle:Number = - Math.PI/4; 
var initvelocity:Number = 100; 
var initvx:Number = initvelocity * Math.cos(initangle); 
var initvy:Number = initvelocity * Math.sin(initangle); 
var currentvx:Number = new Number(initvx); 
var currentvy:Number = new Number(initvy); 
var initdistance:Number = math.calcDistance(inity0,initvelocity,initangle); 

currentvy -= 9.81/stage.frameRate; 
activearrow.x += currentvx/stage.frameRate; 
activearrow.y -= currentvy/stage.frameRate; 

//... 

任意のアイデア?

EDIT: 私は次のコードを変更しました:

currentvy -= 9.81/stage.frameRate * 15; 
activearrow.x += currentvx/stage.frameRate * 15; 
activearrow.y -= currentvy/stage.frameRate * 15; 

をそして今、それはよさそうだが、私はそれが正常に速すぎて15回を飛んでいくのだ物理学では、この中を実行する必要があり、なぜ誰かが私に言うことができます?

+0

こんにちは。私はあなたがそのサンプルで作った投影曲線を描こうとしています。あなたのソースコードはありますか?曲線のためのものだけ。 – Fabricio

答えて

0

確かに、適切と思われる速度を見つけるまで、initvelocityの値を大きくする必要があります。

編集:

物理的な世界で何かに自分の距離と絶対位置を関係づけるものは何もありません。実際には、「1秒あたりのピクセル数」で計測されるものはほとんどありません。あなたの声明currentvy -= 9.81/stage.frameRate;は、フラッシュがどのように動作しているかを理解していれば、効果的に、9.81 ピクセル秒(平方メートルではない)の垂直減速度を設定しています。あなたの計算が1ピクセル= 1メートルで効果的にスケーリングされると考えるならば、スピードは必ずしも不合理ではありませんが、あなたは信じられないほど大きな弓と矢を持っています!

「妥当」なものに近似するために、スケールを適用するだけで済みます。正直言って、本当の科学はありません。

+0

もし私が速度を変えれば、それはさらに飛ぶだろう。距離がコースの速度と結びついているので、より大きな「放物線」を持つだろう...(あなたはマウスを矢印から遠くに私のサンプルファイルにあります) –

+0

ああ、そうです。それは今、私に戻ってきています。私は最後に弾道と何かを見てから30年近く経っています! –