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 上也有,但好像没更新
比如一个引导操作由 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);
}
});
}
如果是拖动改怎么操作呢?