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

2024-01-31 23:59

本文主要是介绍【v2.x OGE-example 第三节 播放精灵动画】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


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项目源代码

 

转载于:https://www.cnblogs.com/claireyuancy/p/7117747.html

这篇关于【v2.x OGE-example 第三节 播放精灵动画】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/665470

相关文章

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主

Qt QWidget实现图片旋转动画

《QtQWidget实现图片旋转动画》这篇文章主要为大家详细介绍了如何使用了Qt和QWidget实现图片旋转动画效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、效果展示二、源码分享本例程通过QGraphicsView实现svg格式图片旋转。.hpjavascript

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

Java第二阶段---09类和对象---第三节 构造方法

第三节 构造方法 1.概念 构造方法是一种特殊的方法,主要用于创建对象以及完成对象的属性初始化操作。构造方法不能被对象调用。 2.语法 //[]中内容可有可无 访问修饰符 类名([参数列表]){ } 3.示例 public class Car {     //车特征(属性)     public String name;//车名   可以直接拿来用 说明它有初始值     pu

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬