【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

相关文章

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

最好用的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影