2012-02-21 15 views
2

私はゲームを作っており、ゲーム終了機能を作成しようとしています。すべての画像を開始位置にリセットするにはどうすればいいですか?イメージの位置をリセットする方法

+1

初期位置をhttp://api.jquery.com/data/に保存し、必要に応じて復元します。 – Cheery

+0

Cheeryがinit()関数を言ったり再実行したり、ページをリロードしたりします。 –

答えて

1

イメージクラスのすべての位置を、配列内のオブジェクト内にプログラム的に格納することができます。 そして、arrayの位置を元に戻すことができます。

var positions = new Array(0); //positions array 

function objPos(obj){ 

    return({ 
     'obj':obj, 
     'x':obj.style.left, 
     'y':obj.style.top 
    }); 
} 


function savePositions(imgContainer){ 

    var imgs = imgContainer.getElementsByTagName('IMG'); 

    for(var i=0; i<imgs.length; i++){ 

     positions[i]=objPos(imgs[i]); 

    } 
} 

function restoreStoredPositions(){ 

    for(var i=0; i<positions.length; i++){ 

     var img=positions[i]; 
     img.style.top=positions[i].y; 
     img.style.left=positions[i].x; 
    } 
} 

は、初期状態でsavePositions関数を呼び出して、後でrestoreStoredPositionsを呼び出すことができます。永続的なデータが必要な場合は、配列をJSONに変換し、CookieまたはHTML5 LocalStorageに格納することができます。

私はこれが純粋なJSだと知っていますが、これは私が今書いた概念です。 これは、getElementByの代わりにeach()とjqueryセレクタを使用するように調整することができます。 私はstyle.topを使い、可読性のために残しましたが、computedStylesは正しいパスです。

関連する問題