文档章节

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

橙游OrangeGame
 橙游OrangeGame
发布于 2014/10/31 16:47
字数 870
阅读 39
收藏 0

 

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 算起,pOldFrameIndex用于判断是否曾经启动过动画,启动过最小则从0算起
    System.out.println("sprite2: pOldFrameIndex"+pOldFrameIndex+" pNewFrameIndex:"+pNewFrameIndex);
   }
   
   @Override
   public void onAnimationFinished(AnimatedSprite animatedsprite) {//动画结束时调用
    System.out.println("sprite2: 动画播放结束");
   }
  }

 

 

OGE_Example项目源码

 

© 著作权归作者所有

橙游OrangeGame

橙游OrangeGame

粉丝 9
博文 43
码字总数 42742
作品 1
深圳
部门经理
私信 提问
【v2.x OGE教程 14】控件使用

下面介绍精灵、动画精灵、按钮精灵、文本的常用使用方法 一、精灵相关 1.添加精灵 //创建精灵 Sprite bar_up = new Sprite(400, 0, RegionRes.getRegion(Res.BAR_UP), getVertexBufferObjec...

橙游OrangeGame
2014/10/22
2
0
学习 PixiJS — 精灵状态

精灵状态 如果你有复杂的游戏角色或交互式对象,你可能希望该角色根据游戏环境中发生的情况,以不同的方式运行。每个单独的行为称为状态。如果你在精灵上定义状态,那么只要游戏中出现与该状...

FEWY
01/19
0
0
学习 PixiJS — 动画精灵

说明 看完官方教程中提到的这本书 — Learn Pixi.js ,准备写写读后感了,官方教程中所说的内容,基本上就是书的前4章,所以我就从第5章开始写写吧。 动画精灵指的是按顺序使用一系列略有不同...

FEWY
01/14
0
0
Cocos2d-x开发实例介绍帧动画使用

下面我们通过一个实例介绍一下帧动画的使用,这个实例如下图所示,点击Go按钮开始播放动画,这时候播放按钮标题变为Stop,点击Stop按钮可以停止播放动画。 下面我们再看看具体的程序代码,首...

智捷课堂
2014/07/15
93
0
【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现CCAnimate动画进行时设置慢动作以及设置游戏加减速进行(塔防游戏必备)! .

Himi 原创, 欢迎转载,转载请在明显处注明! 谢谢。 原文地址:http://blog.csdn.net/xiaominghimi/article/details/7009503 最近也一直在忙,所以也只能每周的某一天抽出时间来分享一些知识...

junwong
2012/03/23
716
0

没有更多内容

加载失败,请刷新页面

加载更多

你知道多少this,new,bind,call,apply?那我告诉你

那么什么是this,new,bind,call,apply呢?这些你都用过吗?掌握这些内容都是基础中的基础了。如果你不了解,那还不赶快去复习复习,上网查阅资料啥的! 通过call,apply,bind可以改变thi...

达达前端小酒馆
今天
5
0
设计模式之命令模式

命令模式的类图 其中的角色有: Client 客户端。只依赖于调用者Invoker、接收者Receiver、以及Command(网上找的图片这里没有画出来),不用关注接收者如何执行命令,只需要告诉调用者需要执行...

陈年之后是青葱
今天
7
0
2. 彤哥说netty系列之IO的五种模型

你好,我是彤哥,本篇是netty系列的第二篇。 欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识。 简介 本文将介绍linux中的五种IO模型,同时也会介绍阻塞/非阻塞与同步/异步的区别。 何...

彤哥读源码
今天
5
0
OSChina 周四乱弹 —— 喵的波粒二象性

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @ 小小编辑推荐:《水墨兰亭》- 李志辉 《水墨兰亭》- 李志辉 手机党少年们想听歌,请使劲儿戳(这里) @巴拉迪维 :卧室里采光要足够好,这样...

小小编辑
今天
45
2
前后端分离接口规范

最近在开发,遇到前后端关于Boolean类型的参数传参和接收的问题: 场景:后台会根据用户是否出车/是否出司机(Boolean类型)来决定后端的业务逻辑(比如费用的计算),前端使用JSON字符串类型...

code-ortaerc
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部