- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
经过几篇文章的介绍,我们的引擎基本上已经开始慢慢成形了,上一节我们虽然我们实现了各种组件,但
是这些组件和节点(Node)都处于静止状态,很显然既然是游戏,就不可能没有动画,那么这一片文章我
们就将给大家介绍引擎的动画系统,这里我们将动画系统分为两个大类,其一是一些基本的动画,包括位
置的移动,缩放、旋转,透明度变化等,其二是帧动画,即由许多帧构成的动画,在实现这些动画之前,
我们都需要对一些基础类进行封装,以方便我们对各种动画的实现。
动作(Action)
这里我们说的动作类便是所有动画的基类,该类封装一个特定行为,在运行时赋予动作一个目标,于是这
个目标将会执行该动作。同时需要注意只有节点(Node)的子类才能执行一个动作。有些动作只有特定的节
点类型才能运行,但是大部分动作都不限制节点具体类型。由于是所有动画的基类,所以我们只需要实现
动画的路框架,包括动画结束的回调函数等,具体的动画效果实现将在其子类来实现,如代码清单5-1所
示。
代码清单5-1:Action实现
view plaincopy to clipboardprint?
1. publicabstract class Action implements YFSCopyable {
2. //非法的标记,为-1
3. publicstatic final int INVALID_TAG = - 1;
4. //源目标
5. private Node mOriginalTarget;
6. // 目标节点
7. public Node mTarget;
8. //动画标记
9. private int mTag;
10. // 回调
11. private Callback mCallback;
12. //得到源节点
13. public Node getOriginalTarget() {
14. returnthis.mOriginalTarget;
15. }
16. //设置源节点
17. publicvoid setOriginalTarget(Node value) {
18. this.mOriginalTarget = value;
19. }
20. //得到目标
21. public Node getTarget() {
22. returnthis.mTarget;
23. }
24. //设置目标
25. publicvoid setTarget(Node value) {
26. this.mTarget = value;
27. }
28. //设置回调
29. publicvoid setCallback(Callback callback) {
30. this.mCallback = callback;
31. }
32. //得到回调
33. public Callback getCallback() {
34. returnthis.mCallback;
35. }
36. //得到,设置tag
37. public int getTag() {
38. returnthis.mTag;
39. }
40. publicvoid setTag(int value) {
41. this.mTag = value;
42. }
43. //构建动作
44. protected Action() {
45. this.mTarget = (this.mOriginalTarget = null);
46. this.mTag = INVALID_TAG;
47. }
48. //拷贝动作
49. public abstract Action cop
文档评论(0)