自定义 ConditionTask


// bt.ConditionTask.ts
class ConditionTask extends LeafTask;

参考 父类 LeafTask API

与其他任务不同,条件任务的执行结果只能是成功或者失败。

API

/**
 * 是否对结果取反。
 * 默认值是 false 。
 */
public invert: boolean;

举个例子

下面我们创建一个用于检查血量的条件任务。

这个任务比较简单,他有 2 个属性变量,一个是 共享变量 sharedHP ,一个是血量阈值 threshold

当他被评估时,会读取 sharedHP 里储存的血量值,然后与阈值进行比较,低于或等于阈值时返回成功,否则返回失败。

import { btclass, btprop, Status, ConditionTask, SharedNumber } from 'bt.ALL';

@btclass('IsLowHp', 'Custom/Condition', {
    description: '检查血量,低于某个值时返回成功。'
})
export class IsLowHP extends ConditionTask {

    @btprop({
        type: SharedNumber,
        required: true,
        tooltip: '血量?'
    })
    public sharedHP: SharedNumber;

    @btprop({
        type: cc.Integer,
        min: 0,
        tooltip: '多少血量算低血量?'
    })
    public threshold: number = 30;

    /**
     * 读取血量值,然后简单做个比较。
     */
    protected onUpdate(): Status {

        return this.sharedHP && this.sharedHP.value <= this.threshold
            ? Status.SUCCESS
            : Status.FAILURE;
    }
};

results matching ""

    No results matching ""