【v2.x OGE-example 第三节 播放精灵动画】
2014-10-31 16:47
537 查看
1. 位置:Drawing_example --> SpriteAnimated
2. 类名:SpriteAnimated
![](http://static.oschina.net/uploads/space/2014/1031/164722_dMTl_1986592.jpg)
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项目源码
相关文章推荐
- 【v2.x OGE-example 第三节 播放精灵动画】
- 【v2.x OGE-example 第三节 播放精灵动画】
- cocos2d-x中两种播放精灵动画的方式
- cocos2dx 几个精灵依照顺序播放动画解决方法
- 【v2.x OGE-example 第二章(第一节) 精灵的移动】
- cocos2dx 几个精灵按照顺序播放动画解决方法
- 【v2.x OGE-example 第二章(第一节) 精灵的移动】
- cocos2d-x实现多个精灵动画同步播放(一)
- RuPengGame游戏引擎 精灵 createSprite 创建 setSpritePosition 设置位置 playSpriteAnimate 播放动画 setSpriteFlipX设置翻转 精灵图片下载地址
- 【v2.x OGE-example 第二章(第一节) 精灵的移动】
- Cocos2d-x学习笔记(五岁以下儿童) 精灵两种方式播放动画
- cocos2d-x实现多个精灵动画同步播放(二)
- 控制动画播放及其获取精灵的长宽数据
- Cocos-2d 关于多个CCSprite精灵播放同一个CCAction动画问题
- Cocos-2d 关于多个CCSprite精灵播放同一个CCAction动画问题
- Unity3D控制动画播放
- Unity3D中播放序列帧动画
- VB工程--百例86--播放flash动画.
- Android animation 动画背景图自动播放的实现
- cocos2d-x基础<三> 播放动画