新手引导框架开源啦,支持TypeScript!

有多种方案,这里说一个简单的,做一个变量标志,在指令函数中自动跳过就行了,直接执行 callback返回

比如 finger 指令

static finger(godGuide, step, callback) {
   //通过一个变量控制,跳过步骤
   if (godGuide.isPass) {
        callback();
        return;
   }
   //正常操作
   let { args } = step.command;
        godGuide._targetNode = null;
        //定位节点
        godGuide.find(args, (node) => {
            //手指动画
            godGuide.fingerToNode(node, () => {
                godGuide._targetNode = node;
                //点击确认
                node.once(cc.Node.EventType.TOUCH_END, () => {
                    cc.log('节点被点击');
                    //任务完成
                    callback();
                });
            });

            //触摸模拟
            let autorun = godGuide.getTask().autorun;
            if (autorun) {
                godGuide.touchSimulation(node);
            }
        });
}

如果是拖动改怎么操作呢?

学习学习。。。。

大佬 git上的项目 微信报错 找不到模块 async 是什么情况啊

1赞

mark下

我觉得应该在run方法里跳过更好,比如创建10个建筑的任务已经完成8个,那下次进入游戏要直接跳转到创建第9个任务,

run(callback?) {
        if (!this._task) {
            return;
        }
        console.log('this._task.steps---------->', this._task.steps)
        async.eachSeries(this._task.steps, (step, cb) => {
            // todo: 给任务做编号,在这里把小于指定编号的任务都跳过
            this._processStep(step, cb);
        }, () => {
            this._task = null;
            cc.log('任务结束');
            this._mask.node.active = false;
            if (this._finger) {
                this._finger.active = false;
            }

            if (callback) {
                callback();
            }
        });
    }

mark.

mark mark

mark mark

爷新引导框架更新了吗

大佬 具体怎么给任务编号和跳过能不能麻烦说一下谢谢, 我遇到的问题是 现在貌似是Tasks 里边的第一个任务不执行完后边的任务就不会执行~

如果任务编号已经执行不再需要执行而直接进入下一个任务时,只要在这里直接调用cb();就行了。

我也有这个问题

使用仓库中的 async.js 直接 require 就行,我在2.4.0上也尝试过正常的

npm包 安装下

2.4.3导入async.js,编辑器就报错,

mark!!!

mark一下

mark

感谢分享, 不过实际项目里的拖动是需要真实的拖动的,事件完成后还要有completeCallback吧,否则引导不知道当前步骤是不是完成了。。