Major Softwares

  INDEX PAGE

  1. 簡介
  2. Java, Android和LibGDX好書推介
  3. Java, Android和LibGDX要學的知識
  4. 用Windows寫Java程式
  5. 用Eclipse寫Java程式
  6. 用Eclipse寫Android程式
  7. 用Eclipse寫LibGDX程式
  8. Standard Java Naming Conventions
  9. System.out.println()的用法和意思
  10. Where is main() method in Android?

LibGDX - Splash & Menu Screen

  1. LibGDX: World, Texture, Background, Camera, Viewport, Screen & OpenGL
  2. LibGDX: Texture, TextureRegion, SpriteBatch & Sprite
  3. UML(Unified Modeling Language): Class Diagram
  4. Type Casting, Upcasting & Downcasting
  5. @Override的用法和意思
  6. LibGDX: Scene2d & Graphical User Interface(GUI)
  7. LibGDX: Splash Screen
  8. LibGDX: Texture Packer
  9. LibGDX: BitmapFonts, JSON & Skin
  10. Android: R.java File
  11. Android: onClick事件的5種實現方式
  12. LibGDX: Game Menu Screen
  13. LibGDX: Advanced Game Menu Screen (using Abstract Screen)
  14. LibGDX: Disposable Interface
  15. Java & LibGDX: super keyword
  16. LibGDX: Advanced Game Menu Screen (using AssetManager)
  17. Java: Array, Arrays, List, ArrayList & LibGDX: Array
  18. LibGDX: File I/O (Preferences)
  19. LibGDX: Game Level Selection Screen
  20. LibGDX: Advanced Game Level Selection Screen (using AssetManager)

LibGDX - Tiled 2D Platform Game

  1. LibGDX: Lifecylce (Render() Method)
  2. LibGDX: Delta Time
  3. LibGDX: Animation & Spritesheet
  4. LibGDX: Keyboard, Mouse & Touch Screen Control
  5. Input Control (Polling VS Event Driven Input)
  6. LibGDX: Tiled (Background and Foreground)
  7. LibGDX: Jumping Action
  8. LibGDX: Tiled (Collision Detection)
  9. LibGDX: Tiled (Bullet Class)
  10. LibGDX: Audio (Sound & Music)
  11. LibGDX: Tiled (Scrollable Background with Camera & HUD)
  12. LibGDX: WorldController & WorldRenderer Class

LibGDX/Java - Card Game No.1 - Blackjack

  1. LibGDX: Install & Setup Android Studio IDE
  2. LibGDX: Use Android Studio to Run Java Hello World
  3. LibGDX: Use Android Studio to Run LibGDX Hello World
  4. Adobe Illustrator: Basic Components Part 1
  5. Adobe Illustrator: Basic Components Part 2
  6. Adobe Illustrator: BlackJack Table & Cards
  7. LibGDX: Blackjack Animation
  8. LibGDX: Interpolation
  9. Java: toString() Method
  10. Java: Blackjack Shuffle Methods
  11. LibGDX: Blackjack Shuffle Method
  12. Java: Blackjack Card Game

LibGDX - Others

  1. Making and Displaying App Icon
  2. LibGDX: Displaying Traditional and Simplified Chinese Characters
  3. LibGDX: Handling Different Screen Resolutions

Unity Game Engine & C#

  1. Visual Studio: C# Hello World
  2. Unity: C# Hello World
  3. Unity: Handling Different Screen Resolutions
  4. Unity: Life Cycle
  5. Unity: StartCoroutine, StopCoroutine, IEnumerator & Yield
  6. Unity: Splash Screen
  7. Unity: Fonts, Traditional and Simplified Chinese Characters
  8. Unity: GameObject, Class Object, new & Instantiate
  9. Unity: Start Screen with Glowing Animated Button
  10. Unity: C# Get & Set Modifier
  11. Unity: Delegates & Events
  12. Unity: File I/O, Read & Write Text File & PlayerPrefs
  13. Unity: Game Level Selection Screen
  14. Unity: Game Menu Screen & ScreenManager
  15. Unity: Encrypt and Decrypt Text File
  16. Unity: Options Menu Screen
  17. Unity: Convert Numbers Image to Custom Font

Unity - Card Game No.1 - Blackjack

  1. Unity: Blackjack Card Game - Part 1 (Full Game)
  2. Unity: Blackjack Card Game - Part 2
  3. Unity: Blackjack Card Game - Part 3
  4. Unity: Blackjack Card Game - Part 4
  5. Unity: Blackjack Card Game - Part 5
  6. Unity: Blackjack Card Game - Part 6
  7. Unity: Blackjack Card Game - Part 7

以下是預告-Coming soon!


Secret Weapon No.1

  1. Unity: Card Game No.2

Advanced Programming

  1. Unity: GPS Programming
  2. Unity: User Login System
  3. Unity: Augmented Reality (AR)

Secret Weapon No.2

  1. Unity: GPS & AR Application

第28節 - LibGDX: File I/O (Preferences)

這一節我會介紹LibGDX的File I/O,File I/O就是用來把遊戲的資料儲存在電腦或手機上,每次開啟遊戲時程式就可以讀取遊戲資料,繼續遊戲。

以下是LibGDX File I/O的主要種類,注意,這一節只會介紹第二種方法,則是Preferences,其他方法如將來要用到才詳細介紹:

LibGDX-File I/O(Preferences)

File I/O - Preferences

Preferences分為三部分:

  1. 建立新檔案。
  2. 儲存資料。
  3. 讀取資料。
LibGDX-File I/O(Preferences)
  1. 建立一個新檔案,檔案名是MyDemo28prefs,再建立一個Preferences物件(prefs)。
    注意,檔案名是MyDemo28prefs,它是用xml格式儲存資料,但不須要File Extension (.xml) 。

  2. 建立了Preferences物件(prefs)之後,我們就可以用putInteger(), putString(), putBoolean()等方法儲存資料。

    注意,儲存的資料只可以是key-value pair,則是只可以一對一,例如:Level1=1, Name=Peter等。

  3. 當檔案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檔案是不能看見的。

LibGDX-File I/O(Preferences)
  1. 如果我們用desktopLauncher.java執行程式,MyDemo28prefs檔案會預設儲存在電腦 Windows的主目錄上:
    c:/Users/Your PC Name/.prefs/MyDemo28prefs

  2. 檔案名是MyDemo28prefs,它是用xml格式儲存資料,但不須要File Extension (.xml) 。

  3. 檔案MyDemo28prefs的內容。

LibGDX-File I/O(Preferences)
  1. 以上是否LibGDX官方的文件,大家可以看到getPreferences()方法內的檔案名稱是一個字串(String),所以不須要File Extension (.xml) 。

  2. 但檔案名稱必須是一個合法的檔案名稱。

例子1 - DesktopLauncher.java

以下會在電腦上執行程式,下一節會介紹在Android手機上執行程式:

LibGDX-File I/O(Preferences)
  1. 建立文件夾fonts,把carterone.fnt和carterone.png傳入assets/fonts/內。

LibGDX-File I/O(Preferences)
  1. DesktopLauncher是PC Desktop的Starter Class,我們在DesktopLauncher內設定顯示的大小為500x700px。

LibGDX-File I/O(Preferences)
  1. 建立一個新檔案,檔案名是MyDemo28prefs,再建立一個Preferences物件(prefs)。

    注意,檔案名是MyDemo28prefs,它是用xml格式儲存資料,但不須要File Extension (.xml) 。

  2. 建立了Preferences物件(prefs)之後,我們就可以用putInteger()和putString()方法儲存資料。

  3. 當檔案MyDemo28prefs建立後,我們就可以用getInteger)()和getString()方法讀取資料,並把資料儲存在level[] Array內。

  4. 把level[0]、level[1]、level[2]和name顯示在屏幕上。

    注意,因為level[0]、level[1]和level[2]是int type,但draw()方法預設用String type,所以必須用Integer.toString()方法把宅們轉為String type。

程式執行結果如下(這例子的程式碼和圖片可以在本節尾部下載):

LibGDX-File I/O(Preferences)

例子2 - AndroidLauncher.java

以下會在Android手機上執行程式:

LibGDX-File I/O(Preferences)
  1. 開啟AndroidLauncher.java程式。

LibGDX-File I/O(Preferences)
  1. 選擇Run。

  2. 再選擇Run Configurations...。


LibGDX-File I/O(Preferences)
  1. 選擇Android Application。

  2. 再選擇New Launch Configuration。

LibGDX-File I/O(Preferences)
  1. 選擇Browse...。

LibGDX-File I/O(Preferences)
  1. 選擇MyDemo28-android。

  2. 按OK。

LibGDX-File I/O(Preferences)
  1. 選擇Always prompt to pick device。

  2. 按Run。

LibGDX-File I/O(Preferences)
  1. 連接您的手機到電腦,如成功,選擇您的手機型號。

  2. 注意,我在第6節 - 用Eclipse寫Android程式介紹過如何連接您的手機到電腦。

  3. 按OK。

程式執行結果如下:

LibGDX-File I/O(Preferences)


Download above code and sample pictures here!