您的位置:首页 > 其它

【v2.x OGE-example 第三节 播放精灵动画】

2017-07-04 17:39 399 查看



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) {// pOldFrameIndex。pNewFrameIndex,当前播放的是第几帧, 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项目源代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: