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

第50節 - LibGDX: Interpolation

這一節我會介紹LibGDX的Interpolation (內插)。

在數學上,Interpolation就是找一個function(函數),完全符合一堆數據。此function稱作Interpolation Function, f(x)。

在LibGDX上,Interpolation的作用是操作actions類別,它可以把圖片在不同時間內指定不同的值所建立的動畫,我會在這節詳細介紹。

執行結果:

以下是本節LibGDX: Interpolation的執行結果:

Type of Interpolations

LibGDX的Interpolation有以下35種static field(屬性):

  1. static class: Interpolation.Bounce,
    static field: bounce,
    所以我們可以用Interpolation.bounce 或 bounce
  2. bounceIn
  3. bounceOut
  4. circle
  5. circleIn
  6. circleOut
  7. elastic
  8. elasticIn
  9. elasticOut
  10. exp5
  11. exp5In
  12. exp5Out
  13. exp10
  14. exp10In
  15. exp10Out
  16. fade
  17. linear
  18. pow2
  19. pow2In
  20. pow2Out
  21. pow3
  22. pow3In
  23. pow3Out
  24. pow4
  25. pow4In
  26. pow4Out
  27. pow5
  28. pow5In
  29. pow5Out
  30. sine
  31. sineIn
  32. sineOut
  33. swing
  34. swingIn
  35. swingOut

例子1: Actions - MoveTo()

例子1會介紹Playing Card Linear Movement,則是把紙牌直線移動到目的地,結果如下圖:

執行程式結果

LibGDX: Interpolation


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

LibGDX: Interpolation
  1. 把以上圖片(png)儲存到Android的assets文件夾內。

LibGDX: Interpolation
  1. 把所有圖片(png)存入Texture物件內。

  2. 把按鈕和紙牌Texture物件存入Actor的Image物件內。

    注意: Stage是一個舞台,在舞台內可以有不同的Actor,而Image也是Actor的一種。

  3. 建立一個Stage物件(stage)。

  4. 每次按下按鈕時,首先重設(Reset)Image物件的設定。

  5. 把紙牌Image物件存入Stage物件(stage)內。

  6. 用Image物件的addAction()方法加入moveTo()方法,這樣做就可以把紙牌在原本的位置(716, 606)直線移動到目的地位置(484, 343)。

  7. 設定監聽動作Gdx.input.setInputProcessor(stage),把Stage物件存入。

  8. 把背景Texture物件(bgTexture)用SpriteBatch物件(batch)在於Render()方法內顯示出來。

  9. 1-stage.act(); - 更新所有Actor,這個例子裡我們只有一個紙牌物件(cardImage1)。
    2-stage.draw(); - 把所有Actor顯示在屏幕上,這個例子裡我們只有一個紙牌物件(cardImage1)。

其他方法 (Other Methods)

以下列出六種方法,方法1、2和3執行結果一樣,方法4、5和6加入Interpolation的話bounceOut,方法4、5和6執行結果一樣:

LibGDX: Interpolation
  1. 方法1 - 用addAction()方法把moveTo()方法存入。

  2. 方法2 - 建立一個Action物件(action),再用addAction()方法把moveTo()方法存入。

  3. 方法3 - 建立一個MoveToAction物件(moveAction),再設定位置和時間,最後用addAction()方法把moveTo()方法存入。

  4. 方法4 - 方法4和方法1相同,加入了interpolation (bounceOut)。
    注意: 我們可以用Static Variable (Interpolation.bounceOut)。

    或者加import static com.badlogic.gdx.math.Interpolation.*; 這樣做我們就可以簡化用bounceOut

  5. 方法5 - 方法5和方法2相同,加入了interpolation (bounceOut)。

  6. 方法6 - 方法6和方法3相同,加入了interpolation (bounceOut)。

例子2 - Interpolation

例子2會介紹節一個Interpolation - bounce的動畫效果,結果如下圖:

執行程式結果

LibGDX: Interpolation

程式部分

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

LibGDX: Interpolation
  1. 把以上圖片(png)儲存到Android的assets文件夾內。

LibGDX: Interpolation
  1. 把所有圖片(png)存入Texture物件內。

  2. 把按鈕和紙牌Texture物件存入Actor的Image物件內。

    注意: Stage是一個舞台,在舞台內可以有不同的Actor,而Image也是Actor的一種。

  3. 建立一個Stage物件(stage)。

  4. 每次按下按鈕時,首先重設(Reset)Image物件的設定。

  5. 把紙牌和bounce的Image物件存入Stage物件(stage)內。

  6. 用Image物件的addAction()方法加入所有動作。

  7. 設定監聽動作Gdx.input.setInputProcessor(stage),把Stage物件存入。

  8. 把背景Texture物件(bgTexture)用SpriteBatch物件(batch)在於Render()方法內顯示出來。

  9. 1-stage.act(); - 更新所有Actor,這個例子裡我們只有一個紙牌物件(cardImage1)。
    2-stage.draw(); - 把所有Actor顯示在屏幕上,這個例子裡我們只有一個紙牌物件(cardImage1)。

以下列出Interpolation的35種static field(屬性):

Interpolation Type 1

LibGDX: Interpolation

Interpolation Type 2

LibGDX: Interpolation

Interpolation Type 3

LibGDX: Interpolation

Interpolation Type 4

LibGDX: Interpolation

Interpolation Type 5

LibGDX: Interpolation

Interpolation Type 6

LibGDX: Interpolation

Interpolation Type 7

LibGDX: Interpolation

Interpolation Type 8

LibGDX: Interpolation

Interpolation Type 9

LibGDX: Interpolation

Interpolation Type 10

LibGDX: Interpolation

Interpolation Type 11

LibGDX: Interpolation

Interpolation Type 12

LibGDX: Interpolation

Interpolation Type 13

LibGDX: Interpolation

Interpolation Type 14

LibGDX: Interpolation

Interpolation Type 15

LibGDX: Interpolation

Interpolation Type 16

LibGDX: Interpolation

Interpolation Type 17

LibGDX: Interpolation

Interpolation Type 18

LibGDX: Interpolation

Interpolation Type 19

LibGDX: Interpolation

Interpolation Type 20

LibGDX: Interpolation

Interpolation Type 21

LibGDX: Interpolation

Interpolation Type 22

LibGDX: Interpolation

Interpolation Type 23

LibGDX: Interpolation

Interpolation Type 24

LibGDX: Interpolation

Interpolation Type 25

LibGDX: Interpolation

Interpolation Type 26

LibGDX: Interpolation

Interpolation Type 27

LibGDX: Interpolation

Interpolation Type 28

LibGDX: Interpolation

Interpolation Type 29

LibGDX: Interpolation

Interpolation Type 30

LibGDX: Interpolation

Interpolation Type 31

LibGDX: Interpolation

Interpolation Type 32

LibGDX: Interpolation

Interpolation Type 33

LibGDX: Interpolation

Interpolation Type 34

LibGDX: Interpolation

Interpolation Type 35

LibGDX: Interpolation

Download above code and sample pictures here!