第28節 - LibGDX: File I/O (Preferences)
這一節我會介紹LibGDX的File I/O,File I/O就是用來把遊戲的資料儲存在電腦或手機上,每次開啟遊戲時程式就可以讀取遊戲資料,繼續遊戲。
以下是LibGDX File I/O的主要種類,注意,這一節只會介紹第二種方法,則是Preferences,其他方法如將來要用到才詳細介紹:

File I/O - Preferences
Preferences分為三部分:
- 建立新檔案。
- 儲存資料。
- 讀取資料。

- 建立一個新檔案,檔案名是MyDemo28prefs,再建立一個Preferences物件(prefs)。
注意,檔案名是MyDemo28prefs,它是用xml格式儲存資料,但不須要File Extension (.xml) 。 - 建立了Preferences物件(prefs)之後,我們就可以用putInteger(), putString(), putBoolean()等方法儲存資料。
注意,儲存的資料只可以是key-value pair,則是只可以一對一,例如:Level1=1, Name=Peter等。 - 當檔案MyDemo28prefs建立後,我們就可以用getInteger(), getString(), getBoolean()等方法讀取資料。
注意1,在getInteger("Level1",0) 的0是代表如果找不到MyDemo28prefs檔案,就把指定的數值儲存到Level1上,在getString("Name","no name stored") 的no name stored是代表如果找不到MyDemo28prefs檔案,就把指定的字串儲存到Name上。
注意2,如果我們用desktopLauncher.java執行程式,MyDemo28prefs檔案會預設儲存在電腦 Windows的主目錄上:
c:/Users/Your PC Name/.prefs/MyDemo28prefs。
注意3,如果我們用AndroidLauncher.java執行程式,MyDemo28prefs檔案會預設儲存在會Android手機的data目錄上:
/data/data/com.hkprogram.mydemo28/MyDemo28prefs。
注意4,很可惜! Android手機如果沒有root機,以上MyDemo28prefs檔案是不能看見的。

- 如果我們用desktopLauncher.java執行程式,MyDemo28prefs檔案會預設儲存在電腦 Windows的主目錄上:
c:/Users/Your PC Name/.prefs/MyDemo28prefs。 - 檔案名是MyDemo28prefs,它是用xml格式儲存資料,但不須要File Extension (.xml) 。
- 檔案MyDemo28prefs的內容。

- 以上是否LibGDX官方的文件,大家可以看到getPreferences()方法內的檔案名稱是一個字串(String),所以不須要File Extension (.xml) 。
- 但檔案名稱必須是一個合法的檔案名稱。
例子1 - DesktopLauncher.java
以下會在電腦上執行程式,下一節會介紹在Android手機上執行程式:

- 建立文件夾fonts,把carterone.fnt和carterone.png傳入assets/fonts/內。

- DesktopLauncher是PC Desktop的Starter Class,我們在DesktopLauncher內設定顯示的大小為500x700px。

- 建立一個新檔案,檔案名是MyDemo28prefs,再建立一個Preferences物件(prefs)。
注意,檔案名是MyDemo28prefs,它是用xml格式儲存資料,但不須要File Extension (.xml) 。 - 建立了Preferences物件(prefs)之後,我們就可以用putInteger()和putString()方法儲存資料。
- 當檔案MyDemo28prefs建立後,我們就可以用getInteger)()和getString()方法讀取資料,並把資料儲存在level[] Array內。
- 把level[0]、level[1]、level[2]和name顯示在屏幕上。
注意,因為level[0]、level[1]和level[2]是int type,但draw()方法預設用String type,所以必須用Integer.toString()方法把宅們轉為String type。
程式執行結果如下(這例子的程式碼和圖片可以在本節尾部下載):

例子2 - AndroidLauncher.java
以下會在Android手機上執行程式:

- 開啟AndroidLauncher.java程式。

- 選擇Run。
- 再選擇Run Configurations...。

- 選擇Android Application。
- 再選擇New Launch Configuration。

- 選擇Browse...。

- 選擇MyDemo28-android。
- 按OK。

- 選擇Always prompt to pick device。
- 按Run。

- 連接您的手機到電腦,如成功,選擇您的手機型號。
- 按OK。
注意,我在第6節 - 用Eclipse寫Android程式介紹過如何連接您的手機到電腦。
程式執行結果如下:
