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

第53節 - LibGDX: Blackjack Shuffle Method

這一節我會介紹如何把第52節 - Java Blackjack Shuffle Methods改為LibGDX的Blackjack Shuffle Method,則是把Java的Shuffle方法(文字版)改寫為LibGDX的Shuffle方法(2D動畫版)。

Convert Blackjack Shuffle Method from Java to LibGDX

以下是上一節的Java Shuffle程式碼和LibGDX Shuffle程式碼的分別:

注意,我會用Method 2 - Fisher–Yates Modern Shuffle Method作例子。

 LibGDX:  Blackjack Shuffle Method
  1. 建立一個shuffle方法start();

  2. 建立一個ArrayList類別的物件(cards);

  3. 初始化cards陣列,大小為0 - 51,則Array index(索引)由cards[0]至cards[51]共52個 ,把cards陣列存入新增的start()方法內,最後複製回到收cards陣列上,便是一個打亂了的數列。

執行程式結果

 LibGDX:  Blackjack Shuffle Method

用Texture Packer建立圖片

我在第18節 - LibGDX: Texture Packer介紹過用Texture Packer可把不同的圖片打包在一個圖片檔案內,再作其他程式處理。

 LibGDX:  Blackjack Shuffle Method
  1. Texture Packer會產生兩個檔案(cardsatlas.png和cardsatlas.pack)。

程式部分

 LibGDX:  Blackjack Shuffle Method
  1. DesktopLauncher是PC Desktop的Starter Class,我們在DesktopLauncher內設定顯示的大小為1024 X 768 px。

 LibGDX:  Blackjack Shuffle Method
  1. 把以上圖片(png和 pack檔案)儲存到Android的assets文件夾內。

 LibGDX:  Blackjack Shuffle Method
  1. 建立一個ArrayList類別的物件(cards);

  2. 建立一個shuffle方法start();

  3. 建立一個TextureAtlas類別物件(textureAtlas),並把cardsaltas.pack存入;

  4. 建立一個Array類別物件(cardsArrays),並把textureAtlas的每一張圖片存入;

  5. 初始化cards陣列,大小為0 - 51,則Array index(索引)由cards[0]至cards[51]共52個 ,把cards陣列存入新增的start()方法內,最後複製回到收cards陣列上,便是一個打亂了的數列。

  6. 最後把打亂了的cards陣列數值(0 - 51)存入cardsArrays陣列上,再把打亂了的數值(0 - 51)存入cardImages[],便可以顯示出Shuffle後的紙牌。

Download above code and sample pictures here!