06_OPhone平台2D游戏引擎实现——帧动画.docVIP

06_OPhone平台2D游戏引擎实现——帧动画.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
06_OPhone平台2D游戏引擎实现——帧动画

上一篇文章我们给大家介绍了基于时间的动画,也就是一些简单的且常用的位置动画,比如:位移,缩放等等,但是我们的目的是要做游戏,光凭这些简单的动画我们还不能完成一个游戏,因为游戏中还有一种常见的动画,他由一系列的序列帧来构成,也就是我们马上将给大家介绍的帧动画,最后我们会结合上一篇的内容来讲述一下组合动画,比如:在一个帧动画的同时在执行一个时间动画。 动画接口 对于整动画的概念相信大家都已经非常清楚了,这里我们就不在啰唆了,大家是否还记得前面我们在Node中所实现的一个动画接口Node.IAnimation,用于实现帧动画的一个基础接口,由于帧动画一般需要一个序列帧来构成,因此我们还为每一个单帧实现了一个接口Node.Frame,下面我们先分析一下这两个接口,如代码清单6-1所示。 代码清单6-1:Node.Frame和Node.IAnimation  HYPERLINK /article/show/298 view plain HYPERLINK /article/show/298 copy to clipboard HYPERLINK /article/show/298 print HYPERLINK /article/show/298 ? //动画帧的基类 ?? public?static?class?Frame?{ ?? ????public?float?duration; ?? ? ?? ????public?Frame(float?duration)?{ ?? ???????this.duration?=?duration; ?? ????} ?? } ?? //动画接口 ?? public?static?abstract?interface?IAnimation?{ ?? ????//时间 ?? ????public?abstract?float?getDuration(); ?? ????//动画帧 ?? ????public?abstract?List??extends?Node.Frame?getFrames(); ?? ????//得到名称 ?? ????public?abstract?String?getName(); ?? }?? //动画帧的基类 public static class Frame { public float duration; public Frame(float duration) { this.duration = duration; } } //动画接口 public static abstract interface IAnimation { //时间 public abstract float getDuration(); //动画帧 public abstract List? extends Node.Frame getFrames(); //得到名称 public abstract String getName(); } ? Frame接口很简单,只包含了一个时间成员,用于确定当前帧执行的时间,而IAnimation接口包括3个抽象方法,他们分别用来得到时间、得到动画帧序列,得到动画的名字(因为我们为每个动画设定一个不同的名字,这样就方便管理),这些方法都需要在我们的帧动画中来实现了,下面我们分析帧动画的实现。 ? 帧动画(Animation) 从上面的叙述中,我们知道了帧动画类需要实现IAnimation接口,并且至少需要包括以下三个成员:动画名字,动画时间,动画序列;这里的动画序列其实际就是以系列构成动画的TextureFrame对象的数组列表,具体实现入代码清单6-2所示。 代码清单6-2:Animation实现  HYPERLINK /article/show/298 view plain HYPERLINK /article/show/298 copy to clipboard HYPERLINK /article/show/298 print HYPERLINK /article/show/298 ? public?class?Animation?implements?Node.IAnimation?{ ?? ????//名称 ?? ????private?String?mName; ?? ????//帧列表 ?? ????private?ArrayListTextureFrame?mFrames; ?? ????//时间 ?? ????private?float?mDuration; ?? ????//得到名称 ?? ????public?String?getName()?{ ?? ???????return

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档