Feekood基本语法(6) - 触发器

来源:互联网 发布:淘宝怎么在详情页打字 编辑:程序博客网 时间:2024/05/19 18:46

触发器是Feekood语法中的一个亮点,主要用以解决UI和游戏的交互问题等,用法灵活多样,方便使用。

Feekood中的触发器主要包括对象触发器和函数触发器两种。

1.对象触发器

对象触发器常用于对精灵等属性的控制。主要包括三个运算符函数:

:-> 属性(property)发生变化时,将执行一次表达式(expression)。语法:

property :-> expression

:=> 属性(property)为1时,表达式(expression)将执行。语法:

property :=> expression

==> 满足函数触发的条件(condition)时,表达式(expression)将执行。语法:

condition ==> expression

下面我们使用前几年非常火爆的“植物大战僵尸”游戏来说明三个触发器的具体使用。

(1)首先在网上找到示例需要的两个精灵图片,上传到Feekood开发平台资源管理器中(资源在Samples/触发器目录下)。

(2)随后使用Create函数创建两个精灵。代码如下:

大脑精灵代码:

大脑精灵

僵尸精灵创建代码:

僵尸精灵

(3)随后要使僵尸不断的向大脑移动(对于平移动画的实现,在Feekood基本语法 - 动画中已经介绍。)

这个移动操作应该在游戏一开始便进行,这里使用系统语言内置的IsLoaded触发器达到这个目的,在对象内部使用owner获取对象属性。代码如下:

IsLoaded:=> {
owner.X <: {100, 6000}; //在6秒的时间内移动到屏幕坐标100的位置
};

(4)僵尸在移动时会不断改变X坐标。为了在“消息列表”中监测X的属性值,我们可以定义一个属性触发器观察坐标的移动位置。代码如下:

X:-> {
Print(“僵尸移动到:” + zombieSprite.X); //X坐标改变即打印相关信息
}

(5)僵尸移动到大脑的坐标时,此时游戏结束,应该停止僵尸的移动。代码如下:

owner.X <= brainSprite.X==> {
owner.X<: “clear”; //清除僵尸的移动动画
};

僵尸精灵最终的完成代码如下:

僵尸精灵触发器

查看脚本的最终运行效果,请猛击这里:查看脚本效果

2.函数触发器

Feekood中的函数触发器主要有下列三个函数:

Event定义事件,当variable值为1时,执行一次表达式。

Event(variable,expression);

Trigger定义当variable值变化时,执行一次表达式。

Trigger(variable,expression);

Update定义的expression时刻都在运行。

Update(expression);

可以看到函数触发器与属性触发器有很多相似之处,只是对象触发器顾名思义主要针对对象,而函数触发器则可以对一些变量(尤其是全局变量)加以控制。

类比对象触发器的使用,如上述检测僵尸位置的属性触发器,可以使用Trigger函数代替。代码如下:

Trigger(zombieSprite.X, {
Print(“僵尸移动到:” + zombieSprite.X);
});

但是用对象触发器显然更加方便代码的组织和管理,所以大家在实际使用时应根据具体的应用场景选择合适的触发器。


官方QQ群:53869409

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

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

0 0
原创粉丝点击