私はjavascriptで書いたささいな小さなゲームを持っていて、クリックしたところから波を作成します。「波」を画面上で移動させる2つの方法を考え出しました。
私が抱えている問題は、2の動作(列はすべてオフセットタイミングで同じ速度で成長する)が必要ですが、1の動作(その後のクリックによって「波」が形成される)が必要なことです。
現在、2番目のデモでは、「wave」が終了する前にもう一度クリックすると、すぐにsetTimeoutsがクリアされ、最初からやり直します。最初の例のようにそれらを積み重ねることができるようにしたいと思います。
これらのページのいずれかのソースを表示して、コードを確認できます(メソッドはgetMouseXYUpおよびgetMouseXYDownです)。
2番目のデモで私が行っていることの基本的な要点は、次の2つの関数にあります。
function getMouseXYUp(e) {
$("body").die('mousemove');
h = (document.height - e.pageY + 17);
left = id-1;
right = id+1;
setTimeout("moveleft()", 100);
setTimeout("moveright()", 100);
return true
}
function moveleft(){
if (left >= 0){
$("#div"+left).animate({'height': h}, 400);
left--;
setTimeout("moveleft()", 50);
}
}