2016-05-09 1 views
0

プレイヤーはこのゲームで1PまたはAIモードを選択できます。私たちは単にフラグを使ってそれを追跡しています。ただし、クリック時にフラグをtrueに変更すると、次のページにルーティングするときにデフォルトのfalseに戻ります。例:AI boolフラグが次のページに保持されないのはなぜですか?

ウォークスルー:再生するモードをAIまたは1Pに設定します。次に、プレイをクリックすると、ページに移動してトピックを選択します。トピックを選択すると、それぞれのAIまたは1Pのゲームページにルーティングされます。

var ai = false; 

$('.mode').click(function() { 
    ai = !ai; 
    $(this).text(function(i, text) { 
     return text === 'Select Mode: AI' ? 'Select Mode: 1P' : 'Select Mode: AI'; 
    }); 
}); 

$('.states').click(function() { 
    // TODO flag engine to grab words from the states word bank 
    if (!ai) { 
     location.href = 'game.html'; 
     } else { 
     location.href = 'roboGame.html'; 
     } 
}); 

答えて

1

var ai = falseを設定し、スクリプトの一部は、このスクリプトを使ってページをロードするたびに実行されています。ブラウザlocalStorageを使用してみてください。

var ai = localStorage.getItem('ai-flag') || false; 

// before navigating to next page 
localStorage.setItem('ai-flag', ai); 

またはルーティングするときに、クエリのparamsを使用することができ、より安全なソリューションのため:第2の溶液の

// on load 
var ai = /ai=true/.test(location.search); 

// on redirect 
location.href = 'index.html?ai=' + ai; 

利点は、特定の状態へのディープリンクにできることなどが!

+0

http://caniuse.com/#feat=namevalue-storage _ancient_ブラウザを使用する予定の場合、これは機能しません。もう一つのオプションはクッキーかもしれません。 – thewisenerd

+0

良い点は、常に機能の可用性を認識することは良いです。厳密に言えば、cookieとlocalstorageは、現代のブラウザであっても、ユーザー構成に基づいて特定のシナリオでは両方とも失敗します。もう一つの提案は、非常に非常にばかばかしいクエリパラメータを使用している可能性があります。私は私の答えに例を追加しました。 –

関連する問題