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

第56節 - LibGDX: Displaying Traditional and Simplified Chinese Characters

這一節我會介紹如何用LibGDX程式顯示英文(English)、繁體中文(Traditional Chinese)和簡體中文(Simplified Chinese)文字,如下圖:

LibGDX: Displaying Traditional and Simplified Chinese Characters

Unicode

Unicode(國際碼)是電腦的一項標準。它對世界上大部分的文字系統進行了整理、編碼,使得電腦可以用更為簡單的方式來呈現和處理文字。

大家可能會誤解以為電腦如果安裝了繁體中文作業系統(例如:Windows 10繁體中文版)就只能夠顯示繁體中文文字,如果想顯示簡體中文文字,就要安裝簡體中文作業系統或插件。這概念是不對的,以上大家的誤解是針對電腦作業系統介面(Interface),而不是顯示中文文字。如果大家想把電腦上的繁體中文作業系統介面轉換為簡體中文作業系統介面,大家就要安裝簡體中文作業系統或插件。

但是如果大家只想在電腦上顯示或輸入繁體中文文字或簡體中文文字,只要安裝中文字體(Chinese Fonts)就可以。因為同一個中文字如果繁體和簡體的寫法不同,Unicode是不同的,這代表同一個中文字的繁體和簡體是當兩個不同文字處理,如下圖:

LibGDX: Displaying Traditional and Simplified Chinese Characters
  1. 以上已"遊戲"和"游戏"的Unicode作例子。

  2. "遊戲"和"游戏"的Unicode是不同的。

Example 1 (例子1)

1. DesktopLauncher.java

LibGDX: Displaying Traditional and Simplified Chinese Characters
  1. 我們在DesktopLauncher內設定顯示的大小為650x800px。

2. MyDemo56.java

LibGDX: Displaying Traditional and Simplified Chinese Characters
  1. 在MyDemo56.java內建立BitmapFont類別的font1物件。

  2. 嘗試顯示所有英文(English)、繁體中文(Traditional Chinese)和簡體中文(Simplified Chinese)文字。

3. Result (執行程式)

LibGDX: Displaying Traditional and Simplified Chinese Characters
  1. 結果繁體中文(Traditional Chinese)和簡體中文(Simplified Chinese)文字不能顯示。

Making Bitmap Font using Hiero

我在第19節 - LibGDX: Bitmap Fonts, JSON & Skin介紹過用Hiero軟件製作Bitmap Fonts,簡單來說Bitmap Fonts就是在屏幕上顯示文字,Bitmap Font把一種字體的A至Z和其他字符儲存在一個.png檔案上,再傳到GPU作其他程式處理,這樣做也是為了減少記憶體的資源。

所以大家只要選擇一種字體支援中文字(不須理會繁體中文或簡體中文,因為Unicode是不同的,通常已包括在內),在Hiero軟件內設定則可。

大家可以在電腦的Windows/Fonts內找出支援中文字的字體,如下圖:

LibGDX: Displaying Traditional and Simplified Chinese Characters
  1. 電腦的Windows/Fonts

  2. 選擇一種支援中文字的字體。

LibGDX: Displaying Traditional and Simplified Chinese Characters
  1. 開啟Hiero軟件,選擇之前已選擇好的字體。

  2. 輸入您想顯示的繁體中文和簡體中文文字。

LibGDX: Displaying Traditional and Simplified Chinese Characters
  1. 在左上角選擇"File"。

  2. 再選擇"Save BMFont files (text)..."。

  3. 輸入名稱,例如: chinese,之後chinese.fnt和chinese.png兩個檔案就會產生。

LibGDX: Displaying Traditional and Simplified Chinese Characters
  1. 大家要留意因為""程式"的繁體中文和簡體中文文字是相同的,Hiero軟件只會儲存一次。

Example 2 (例子2)

1. Assets

LibGDX: Displaying Traditional and Simplified Chinese Characters
  1. 在Android的assets內建立"fonts"文件夾,複製chinese.fnt和chinese.png到文件夾。

2. DesktopLauncher.java

LibGDX: Displaying Traditional and Simplified Chinese Characters
  1. 我們在DesktopLauncher內設定顯示的大小為650x800px。

3. MyDemo56_1.java

LibGDX: Displaying Traditional and Simplified Chinese Characters
  1. 在MyDemo56_1.java內建立BitmapFont類別的font1物件,並讀取chinese.fnt的中文字體。

  2. 嘗試顯示所有英文(English)、繁體中文(Traditional Chinese)和簡體中文(Simplified Chinese)文字。

4. Result (執行程式)

這一次就成功顯示所有英文(English)、繁體中文(Traditional Chinese)和簡體中文(Simplified Chinese)文字。

LibGDX: Displaying Traditional and Simplified Chinese Characters

Download above code and sample pictures here!