2013-12-12 63 views
1

我目前正在使用Javascript或更確切地說是CraftyJS製作一款Mario-esque遊戲。解決方法:無法使用HTML5 Web存儲器保存布爾值

我看過here作爲參考, 並瞭解如何保存用戶輸入的值。 但是我想要完成的是自動保存某些布爾值(或者他們被稱爲?),或者當玩家按下保存按鈕或某物時。

例如,我有一個名爲dungeon1的地牢,並且我創建了一個變量來表示地牢是否已經完成。

默認爲var dungeon1 = false;

但是當玩家完成dungeon1時,它會更改爲var dungeon1 = true;, ,從而導致世界地圖的新增加,比如dungeon2的入口(這個工作正常)。

我想要保存的是這個var dungeon1 = true;聲明,這樣當用戶再次打開遊戲時,完成的地下城將被加載並且相應的解鎖將被正確顯示。我會怎麼做? 有沒有辦法說,製作一個名爲save.js的保存管理文件,然後存儲像上面那樣的布爾變量,一旦它們變成true

+1

[HTML5本地存儲(http://www.w3schools.com/html/html5_webstorage.asp)? –

+0

@JustinWood是的,我想在HTML5網絡存儲中使用本地存儲方法。 –

+0

然後閱讀我鏈接的文檔。 –

回答

0

您只需存儲所需的布爾值的字符串版本。因此存儲「真」和「假」,而不是像if(變量)那樣檢查if(變量===「true」)的形式。它有點詭異,但你可以看到它如何不會增加你的代碼的複雜性。

如果這種類型的檢查只是冒犯了你的敏感性,那麼在你從localStorage中「獲取」它的代碼中,你可以將它重新轉換爲布爾值。

var bool = (localStorage.getItem("myItem") === "true") 

PS。你可以用布爾值來設置它...它只會將它們轉換爲字符串:D,因爲大部分東西都會調用toString()來存儲它們,如果它們不是字符串的話。

所以,你可以這樣做:

enter code here localStorage.setItem( 「myItem」,真)