Feekood基本语法(7) - 继承

来源:互联网 发布:中日韩 餐具知乎 编辑:程序博客网 时间:2024/05/21 19:40

Feekood中的“继承”语法借鉴了面向对象的思想,能够有效简化代码复杂度,便于脚本代码的共享和重用。

语法:

InheritArray :: BaseArray

其中InheritArray表示继承的集合,BaseArray表示被继承的集合,返回在继承的基础上产生的新集合。

1、单元素集合继承

Print({4}::{1,2,3}); //打印{1,2,3,4}

2、键值对元素集合继承

Print({m:4,n:5}::{x:1,y:2,z:3}); //打印{x:1,y:2,z:3,m:4,n:5}

在集合元素的键重复时会覆盖继承集合的属性

Print({y:4}::{x:1,y:2,z:3}); //打印{x:1,y:4,z:3}

3、触发器继承

继承集合时,如果元素有触发器,则会一并继承下来。

继承属性触发器:

m={x:0;x:->{Print(owner.x)}};

n={x:1}::m;//打印X:1

n.x=100;//打印X:100

继承条件触发器:

m={x:0;owner.x>100==>{Print(“”OK”“)}};

n={}::m;

n.x=101;//一直打印”OK”

4、动画继承

例如上一节的“僵尸”例子。所有的僵尸都从相同的位置向相同的方向移动,因此坐标、动画等属性都是通用的,我们可以提取僵尸的“基类”集合,放置通用属性,随后对于特定的僵尸设定相应的图片即可。代码如下:

僵尸精灵继承示例

同理,理解了继承的原理后,可以使用新的动画代替原有的IsLoaded中的动画,从而达到不同的僵尸行进速度不一样的效果。

5、多文件继承。

在文件中定义的对象可以通过Include函数引用到其他文件中加以使用,同样可以对Include得到的对象使用继承操作。

如在1.ais中定义:

x = {a:1};

在同级目录的2.ais中引入1.ais:

Include(“1.ais”);

此时,可以如之前的操作一样定义新的集合继承x:

y = {b:2} :: x;


由上述例子不难看出,在Feekood语言中,无论是在单文件还是在多文件中,无论是普通集合,还是键值对集合,无论是属性、触发器还是动画等都能够使用“继承”语法复用代码,“继承”语法能够有效的进行代码的组织和管理,在大型游戏的开发中有着广泛的使用。

官方QQ群:53869409

出处:http://blog.csdn.net/wooyoogame/article/details/44600123

本文版权归作者和CSDN共有,欢迎转载,但请在明显位置给出原文链接,否则保留追究法律责任的权利。

0 0