1. 程式人生 > >【v2.x OGE-example 第三節 播放精靈動畫】

【v2.x OGE-example 第三節 播放精靈動畫】

一次 src nal rst and 播放 ole nbsp ()


1. 位置:Drawing_example --> SpriteAnimated
2. 類名:SpriteAnimated

技術分享

3.利用AnimatedSprite動畫精靈類能夠實現多種多種動作。

比如:

1.播放精靈動畫,指定播放速度;

2.播放特定幀,指定特定每一幀的幀速,能夠實現慢放,快進,跳幀。倒放等。

3.能夠循環播放,也能夠僅僅播放一次,也能夠指定播放次數;

4.增加監聽器。全然掌握動畫的播放狀態,開始?結束?播到第幾幀?是否播放完?循環了幾次;

4.一下是AnimatedSprite提供播放動畫的方法:

/**
* 播放


* @param pFrameDurationEach 每幀不放多少時間,毫秒為單位
*/

public void animate(final long pFrameDurationEach)

/**
* 播放並監聽
* @param pFrameDurationEach 每幀不放多少時間,毫秒為單位

* @param pAnimationListener 動畫監聽器
*/

public void animate(final long pFrameDurationEach, final IAnimationListener pAnimationListener)

/**
* 是否循環播放
* @param pFrameDurationEach 每幀不放多少時間,毫秒為單位

* @param pLoop 是否循環
*/

public void animate(final long pFrameDurationEach, final boolean pLoop)

/**
* 是否循環播放 加監聽
* @param pFrameDurationEach 每幀不放多少時間,毫秒為單位

* @param pLoop 是否循環

* @param pAnimationListener 動畫監聽器
*/

public void animate(final long pFrameDurationEach, final boolean pLoop, final IAnimationListener pAnimationListener)

/**
* 是否循環播放 加監聽
* @param pFrameDurationEach 每幀不放多少時間,毫秒為單位

* @param pLoopCount 循環次數
*/

public void animate(final long pFrameDurationEach, final int pLoopCount)

/**
* 是否循環播放 加監聽
* @param pFrameDurationEach 每幀不放多少時間,毫秒為單位

* @param pLoopCount 循環次數

* @param pAnimationListener 動畫監聽器
*/

public void animate(final long pFrameDurationEach, final int pLoopCount, final IAnimationListener pAnimationListener)

/**
* 播放特定的幀
*
* @param pFrameDurations 特定幀的幀速.
*/

public void animate(final long[] pFrameDurations)

public void animate(final long[] pFrameDurations, final IAnimationListener pAnimationListener)

public void animate(final long[] pFrameDurations, final boolean pLoop)

public void animate(final long[] pFrameDurations, final boolean pLoop)

public void animate(final long[] pFrameDurations, final int pLoopCount)

public void animate(final long[] pFrameDurations, final int pLoopCount, final IAnimationListener pAnimationListener)

/**
* 播放特定的幀
*
* @param pFrameDurations 特定幀的幀速.

* @param pFirstTileIndex 起始幀.

* @param pLastTileIndex 終結幀.

* @param pLoop 是否循環.
*/

public void animate(final long[] pFrameDurations, final int pFirstTileIndex, final int pLastTileIndex, final boolean pLoop)

public void animate(final long[] pFrameDurations, final int pFirstTileIndex, final int pLastTileIndex, final boolean pLoop, final IAnimationListener pAnimationListener)

public void animate(final long[] pFrameDurations, final int pFirstTileIndex, final int pLastTileIndex, final int pLoopCount)

public void animate(final long[] pFrameDurations, final int pFirstTileIndex, final int pLastTileIndex, final int pLoopCount, final IAnimationListener pAnimationListener)

/**
* 播放特定的幀
*
* @param pFrameDurations 必須與pFrames同樣的length.
* @param pFrames 播放幀的文件夾.
*/
public void animate(final long[] pFrameDurations, final int[] pFrames)

/**
* 播放特定的幀
*
* @param pFrameDurations 必須與pFrames同樣的length.
* @param pFrames 播放幀的文件夾.
* @param pLoop 是否循環
*/
public void animate(final long[] pFrameDurations, final int[] pFrames, final boolean pLoop)

/**
* 播放特定的幀
*
* @param pFrameDurations 必須與pFrames同樣的length.
* @param pFrames 播放幀的文件夾.
* @param pLoopCount 循環次數
*/
public void animate(final long[] pFrameDurations, final int[] pFrames, final int pLoopCount)

/**
* 播放特定的幀
*
* @param pFrameDurations 必須與pFrames同樣的length.
* @param pFrames 播放幀的文件夾.
* @param pLoopCount 循環次數
* @param pAnimationListener 監聽器動畫狀態
*/
public void animate(final long[] pFrameDurations, final int[] pFrames, final int pLoopCount, final IAnimationListener pAnimationListener)

5.動畫監聽器:

new IAnimationListener() {

@Override
public void onAnimationStarted(AnimatedSprite animatedsprite, int i) {//動畫開始時回調
System.out.println("sprite2: 動畫開始");

}

@Override
public void onAnimationLoopFinished(AnimatedSprite animatedsprite, int i,
int j) {//動畫循環一次時回調
System.out.println("sprite2: 動畫循環一次結束");
}

@Override
public void onAnimationFrameChanged(AnimatedSprite animatedsprite, int pOldFrameIndex,
int pNewFrameIndex) {// pOldFrameIndexpNewFrameIndex,當前播放的是第幾幀, pOldFrameIndex-1 算起
//pNewFrameIndex 0 算起。pOldFrameIndex用於推斷是否以前啟動過動畫,啟動過最小則從0算起
System.out.println("sprite2: pOldFrameIndex"+pOldFrameIndex+" pNewFrameIndex:"+pNewFrameIndex);
}

@Override
public void onAnimationFinished(AnimatedSprite animatedsprite) {//動畫結束時調用
System.out.println("sprite2: 動畫播放結束");
}
}

OGE_Example項目源代碼

【v2.x OGE-example 第三節 播放精靈動畫】