2012-04-24 6 views
1

私はフィールドを横切って移動するようにアニメーション化された他のdivで、砲塔が発射物を発射する小さなjqueryゲームを持っています。私の発射体は、来るべきdivが近くにあった最後の位置に発射され、決して命中しない。私が必要としているのは、発射体の動きに沿って発射体のコースを変更する方法です。下のボタンを使って、私は発射体の現在の位置を受け取ることができますが、それをアニメーション化することで変更することはできません。アニメーション中にJquery Animationコースを変更するには?

$(projectile).animate({"top":Y, "left": X},{duration:500, easing: 'linear',step: function(currentLeft,currentTop){ 
checkforenemies(); 
}, complete: function() { 
    $(projectile).remove(); 

}}); 

ステップ内のアニメーションのコースを変更する方法はありますか?

答えて

1

一部approchesが頭に浮かぶ: A)あなたがステップにアニメーションを破ることができます。ターゲットは、各ステップ上の位置を変更し、それがない場合は、アニメーションや起動を停止した場合

function step(){ 
    while ($(projectile).length > 0){ // while projectile exists 
    $(projectile).animate({ 
     "top": getTargetY()/numberOfStepsItTakesToHitIt, 
     "left": getTargetX()/numberOfStepsItTakesToHitIt }, 
     {duration:500, easing: 'linear', complete: function() { 
     $(projectile).remove(); 
     } 
    }); 
    step(); 
    } 
} 

B)はチェック新しい1:

function step(){ 
    if (targetMoved && $(projectile).length > 0){ 
    $(projectile).stop(); 
    $(projectile).animate({ 
     "top": getTargetY()/numberOfStepsItTakesToHitIt, 
     "left": getTargetX()/numberOfStepsItTakesToHitIt }, 
     {duration:500, easing: 'linear', step: step, complete: function() { 
     $(projectile).remove(); 
     } 
    }); 
    } 
} 

C)それの位置と速度に基づいて目標軌道を()を計算し、それに推測が将来の場所だします。その場所で火事よりも衝突がないかどうかチェックしてください。

私は最後のアプローチが一番好きです。発射軌道は曲がらないが、最も複雑である。

P .:私はコードをチェックしなかったので、おそらく意味論的な(そして多分論理的な)エラーを含んでいます。

関連する問題