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

第24節 - LibGDX: Disposable Interface

這一節我會介紹LibGDX的Disposable介面,這裡會簡單介紹甚麼時候須知用到Disposable介面和dispose()方法。

Interface - Disposable

我在第12節 - LibGDX: Texture, TextureRegion, SpriteBatch & Sprite介紹過Disposable介面,以下重溫一下。

Texture類別

Texture類別須要在程式結束時在dispose()方法內進行銷毀,因為Texture類別存放在com.badlogic.gdx.graphics下,繼承自Object,實現了Disposable介面(interface),凡是實現了Disposable介面,都應該在程序結束時對該類進行銷毀。

以下是LigGDX官方API文件:

Disposable Interface

SpriteBatch類別

SpriteBatch類別和Texture類別一樣,它須要在程式結束時在dispose()方法內進行銷毀,因為SpriteBatch類別存放在com.badlogic.gdx.graphics下,繼承自Object,實現了Disposable介面(interface),凡是實現了Disposable介面,都應該在程序結束時對該類進行銷毀。

以下是LigGDX官方API文件:

Disposable Interface

Sprite類別

但是Sprite類別就不須要在程式結束時在dispose()內進行銷毀,因為Sprite類別存放在com.badlogic.gdx.graphics.g2d下,繼承自Object,沒有實現了Disposable介面(interface),所以Sprite類別就不須進行銷毀。

以下是LigGDX官方API文件:

Disposable Interface

實作Disposable介面的類別

要知道那個類別須要在程式結束時在dispose()方法內進行銷毀很簡單,逄類別有實作Disposable介面的都須要。

以下列出LigGDX所有實作Disposable介面的類別,紅色方格是常用的類別:

Disposable Interface
  1. Disposable Interface官方文件。

  2. 紅色方格是常用的類別。

例子1 - Main Class (MyDemo2)實作ApplicationListener

Disposable Interface
  1. 把MyDemo2實作ApplicationListener介面。

  2. 把texture和batch物件用dispose()方法進行銷毀。

例子2 - FacebookScreen類別實作Screen介面

Disposable Interface
  1. 注意,Screen介面的dispose()方法和Game類別的dispose()方法不同,根據LibGDX官方文件解釋,Screen介面的dispose()方法是不會自動執行,所以我們必須在畫面轉換時在hide()執行dispose()方法。

  2. 把texture和batch物件用dispose()方法進行銷毀。

dispose() in ApplicationListener & Screen Interface

dispose() in ApplicationListener Inferface

以下列出LigGDX官方文件的ApplicationListener介面,其中dispose()方法會在Application銷毀時自動執行:

Disposable Interface
  1. ApplicationListener Interface官方文件。

  2. dispose()方法會在Application銷毀時自動執行。

以下列出LigGDX的生命週期:

Disposable Interface
  1. dispose()方法會在Application銷毀時自動執行。

dispose() in Screen Interface

以下列出LigGDX官方文件的Screen介面,注意,與會ApplicationListener介面不同,Screen介面的dispose()方法是不會自動執行,所以我們必須在畫面轉換時在hide()執行dispose()方法:

Disposable Interface
  1. Screen Interface官方文件。

  2. dispose()方法是不會自動執行,所以我們必須在畫面轉換時在hide()執行dispose()方法。

總結

以下列出ApplicatonListener和平Screen介面的分別:

Disposable Interface
  1. ApplicationListener介面用create()方法,Screen介面用show()方法。

  2. Screen介面多一個hide()方法,當現時畫面到另一個時畫時,hide()方法就會自動執行。

  3. ApplicationListener介面的dispose()方法會在Application銷毀時自動執行。

  4. Screen介面的dispose()方法是不會自動執行,所以我們必須在畫面轉換時在hide()執行dispose()方法。