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 算起

算起

    System.out.println("sprite2: pOldFrameIndex"+pOldFrameIndex+" pNewFrameIndex:"+pNewFrameIndex);

   }

   

   @Override

   public void onAnimationFinished(AnimatedSprite animatedsprite) {//动画结束时调用

    System.out.println("sprite2: 动画播放结束");

   }

  }

OGE_Example项目源代码

【v2.x OGE-example 第三节 播放精灵动画】的更多相关文章

  1. 【v2.x OGE教程 11】 动画编辑器帮助文档

    ] 动画编辑器帮助文档 版本号 日期 作者 说明 1.0 2014-9-3 橙子游戏 文档创建       一.简单介绍 动画编辑器用于游戏动画的可视化编辑,支持序列帧动画和关键帧动画.通过解析生成的 ...

  2. SpriteSheet精灵动画引擎

    SpriteSheet精灵动画引擎   本文介绍Flash中SpriteSheet精灵序列图与其它渲染方式的性能对比.SpriteSheet的原理及注意实现,最后实现了一个精灵序列图的渲染引擎.本文的 ...

  3. css精灵动画

    精灵动画的实现 CSS Sprites在国内很多人叫CSS精灵,其实这个技术不新鲜,原理就是:靠不断的切换图片让人感觉视觉上不断在变化,例如gif动画之类的效果 那么前端如何实现精灵效果? 传统的就是 ...

  4. 精灵动画Animation对话框组成Idle动画的各精灵

    精灵动画Animation对话框组成Idle动画的各精灵 1.3  精灵动画 场景中已经添加了精灵,现在是时候让让它动起来了.读者也许已经从精灵图集中,各精灵的命名中看出来了,这个精灵一共有两种动画状 ...

  5. Unity3D ShaderLab 模拟精灵动画

    Unity3D ShaderLab 模拟精灵动画 在上一篇,介绍了通过Shader 模拟纹理运动,那么更深一步讲,我们也可以把帧动画的精灵纹理运动通过shader实现. 虽然大家都是在游戏脚本中做更高 ...

  6. 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇01:播放序列动画》

    1.播放序列动画 系列动画播放概述 2D游戏中的动画系统,不同于3D游戏.3D游戏中,角色美术资源不仅包含角色模型的,还包括角色的贴图和动作等,模型本身自带角色的动作动画效果.2D游戏中,角色美术资源 ...

  7. Unity中的动画系统和Timeline(2) 按钮动画和2D精灵动画

    按钮动画 1 创建按钮后,按钮的Button组件中,Transition我们平时用的时Tint,这次选择Animation 选择Auto Generate Animation,创建一个按钮动画 2 后 ...

  8. 3D网页小实验-基于多线程和精灵动画实现RTS式单位行为

    一.实验目的: 1.在上一篇的"RTS式单位控制"的基础上添加逻辑线程,为每个单位实现ai计算: 2.用精灵动画为单位的行为显示对应的动作效果. 二.运行效果: 1.场景中的单位分 ...

  9. 原创:CSS3技术-雪碧图自适应缩放与精灵动画方案

    花了一个礼拜完成了慕课网定制的七夕主题效果,其中有一个没实现好的功能,就是雪碧图的自适应缩放 ps: 以下实现都是基于移动端的处理 原图如下: 人物是采用的是雪碧图,通过坐标绝对数据取值 问题很明显, ...

随机推荐

  1. 09Windows编程

    Windows编程 2.1      窗口 Windows应用程序一般都有一个窗口,窗口是运行程序与外界交换信息的界面.一个典型的窗口包括标题栏.最小化按钮.最大/还原按钮.关闭按钮.系统菜单图标.菜 ...

  2. C++命名空间、标准库(std,全局命名空间)

    背景 别人遇到的问题: C++ 全局变量不明确与 using namespace std 冲突 我遇到的问题与他相似,函数调用冲突 using namespace std; class compare ...

  3. PHP条件运算符的“坑”

    今天遇到一个关于PHP 嵌套使用条件运算符(ternary expressions)的问题 现象 先来看一段C语言代码(test.c): #include<stdio.h> int mai ...

  4. winform 实现两个datagridview之间的数据联动

    再做数据库开发的时候,经常会遇到表带上明细表,比如,一个学校有好多系,每个系又有好多专业.... 在winform中,都会使用datagridview来显示数据,现在就来说说如何实现之间的联动.比如现 ...

  5. python面向对象编程实例

    1.编写程序, 编写一个学生类, 要求有一个计数器的属性, 统计总共实例化了多少个学生 class Student: """学生类""" c ...

  6. CPLD和FPGA中不同电压的JTAG电路设计注意事项

    在初次的cpld电路设计的时候,遇到了这样的一个问题,整个系统是3.3V的系统,选用的cpld是XC9536-10VQ44C,芯片供电电压5V.他的io可以配置成3.3V和5V两种形式,因此,选用的时 ...

  7. I2C详细介绍

    I2C时序 1.开始和停止: 说明: 开始:在SCL的高电平的时候SDA线的从高电平到低电平的跳变定义为开始 停止:在SCL的高电平的时候SDA线的从低电平到高电平的跳变定义为停止 2.有效数据的位置 ...

  8. VI/VIM 编辑器

    [是什么?] VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器. VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器.可以主动的以字体颜色辨别语法的正确性,方便程序 ...

  9. git-github 提示Permission denied (publickey) (windows)

    这种绝大多数情况是由于公钥设置的问题. 1.生成公钥 参考地址:https://help.github.com/articles/generating-a-new-ssh-key-and-adding ...

  10. java生成6位随机数字

    //生成6位随机数字 System.out.println((int)((Math.random()*9+1)*100000)); //生成5位随机数字 System.out.println((int ...