2013-04-26 4 views
5

en train de concevoir un jeu et l'idée est celle d'un score élevé, de sorte que lorsque le score est plus que le stockage local un, il est remplacé:réglage variable dans le stockage local

localStorage.setItem('highScore', highScore); 
var HighScore = localStorage.getItem('highScore'); 
if (HighScore == null || HighScore == "null") { 
    HighScore = 0; 
} 

if (user.points > HighScore) { 
    highScore = parseInt(HighScore); 
} 
return highScore 

Merci les gars

+2

Quelle est votre question? – nullability

+0

Comment puis-je résoudre le problème, car cela ne fonctionne pas? –

+0

définir ne fonctionne pas –

Répondre

10

Cela devrait vous orienter dans la bonne direction.

// Get Item from LocalStorage or highScore === 0 
var highScore = localStorage.getItem('highScore') || 0; 

// If the user has more points than the currently stored high score then 
if (user.points > highScore) { 
    // Set the high score to the users' current points 
    highScore = parseInt(user.points); 
    // Store the high score 
    localStorage.setItem('highScore', highScore); 
} 

// Return the high score 
return highScore; 
1

Voici un exemple de ce que je pense que vous essayez d'atteindre. Bien sûr, ce n'est qu'un exemple et pas le code écrit pour vous.

<button id="save10">Save 10</button> 
<button id="save12">Save 12</button> 

var highscore = 11, 
    button10 = document.getElementById("save10"), 
    button12 = document.getElementById("save12"), 
    savedHighscore; 

function saveData(x) { 
    localStorage.setItem('highscore', x); 
} 

button10.addEventListener("click", function() { 
    saveData(10); 
}, false); 

button12.addEventListener("click", function() { 
    saveData(12); 
}, false); 

savedHighscore = parseInt(localStorage.getItem('highscore'), 10); 
if (typeof savedHighscore === "number" && highscore < savedHighscore) { 
    highscore = savedHighscore; 
} 

alert("Highscore: " + highscore); 

Sur jsfiddle

Utilisez les boutons pour régler le highscore, 10 ou 12. Actualiser page, ou courir frappé (simule seulement rafraîchissement). L'utilisateur marque toujours 11 et il alertera soit 11 ou 12 en fonction du meilleur score enregistré.