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

mark

学习学习

mark

我目前的项目中遇到这种情况:
主线引导中又触发另一个引导,比如主线引导是进入副本打怪等一些强制引导,战斗结束后,如果血量低于50%就触发另一个引导:引导打开某个界面,然后给英雄加血,这个就很烦了,

另外这段检测触发引导的逻辑代码放在哪里也是个蛋疼事情,目前没啥好方法只好新建一个特殊的逻辑类里

可以用事件触发引导

引导在第一步时,监听某个事件发生。

当你完成某个任务或条件,触发事件发生,引导就执行起来了。

我没表达清楚,其实我说的是,当前在a的引导第x步骤,这个时候有概率需要触发b引导,a引导要被中断了,等b引导完成再触发a引导,

你或许可以这样,把a引导分为a1和a2引导,a1引导完成成判断是否触发b引导,没有触发执行a2引导。。。

mark1111111111111111

模拟点击真是酷毙了!2.2.2测试web/native都可以用。

战略性mark

请问该如何中断当前的指引,比如一个task.ts中有三步,执行到第二步的时候想中断这个指引,该如何中断呢?

ps: 是在外部进行中断

这个引导如果走到一半退出游戏,再次进入游戏如何接着之前的引导走呢?

建议源码放在gitee上一份,放在git上下载都得半天

gitee 上也有,但好像没更新:joy:

比如一个引导操作由 5 个 Step 组成,我一般是在最后一个 Step 时做数据保存,如果没有保存,那下一重新再来一次完整的引导操作。

有多种方案,这里说一个简单的,做一个变量标志,在指令函数中自动跳过就行了,直接执行 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);
            }
        });
}

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