import EventMgr from "../../../FrameWork/Event/EventMgr"; import { ryw_Event } from "../../../FrameWork/Event/EventEnum"; import Common5 from "../../../Platform/th/Common5"; import Game from "../../../Scripts/Game"; import ZhaoChaConfig_v7 from "./ZhaoChaConfig_v7"; import Common from "../../../FrameWork/Util/Common"; import DaDianScript from "../../../FrameWork/Base/DaDianScript"; const {ccclass, property} = cc._decorator; @ccclass export default class ZhaoChaV4 extends cc.Component{ gameId:number = 0; gameInfo = null originalTouchDistance:number = 0 //起始双指触摸间距 lastScale:number = 1//上次缩放值 oldScale:number = 1//上次缩放值 curScale:number = 1//当前缩放值 touchId1:number = -1 touchId2:number = -2 findTimes:number = 0//已找出个数 mapNode: cc.Node = null; //map图片 mapNodeFixedScale:number = 0.6//固定缩放(图片太大了) touchStartTime:number = 0//触摸开始时间 isFind = false; curZIndex:number = 100; allMoneyNum_ = 0 @property(cc.Node) timeNode:cc.Node = null; @property(cc.Node) maskNode:cc.Node = null; @property(cc.Node) blackNode:cc.Node = null; @property(cc.Node) markSp: cc.Node = null; @property(cc.Node) answerNodeType1: cc.Node = null; @property(cc.Node) answerNodeType2: cc.Node = null; @property(cc.Node) answerNodeType3: cc.Node = null; @property(cc.Label) taici: cc.Label = null; curSceneIndex:number = 0; subBundle = null subUrl = null isFailShow=false; isSuccessShow = false; update(dt: number){ } onLoad(){ Common.Type = 2; Common.subLevel = 0; Common.GameSubTipConfigs=[Common5.gameConfig.zmGameConfig[Common5.selectGameNum].toolTip] this.subBundle = Common5.gameConfig.zmGameConfig[Common5.selectGameNum].subbundle this.subUrl = Common5.gameConfig.zmGameConfig[Common5.selectGameNum].suburl this.gameId = Common5.gameConfig.zmGameConfig[Common5.selectGameNum].gameId this.gameInfo = ZhaoChaConfig_v7.getInstance().getHideGoodsInfo(this.gameId) EventMgr.onEvent_custom(ryw_Event.timeOut, (tab) => { Game.ins.showFail(); }, this); DaDianScript.userEnterDaDian() } start(){ cc.macro.ENABLE_MULTI_TOUCH = true; this.init_line(); this.setTimeNode(); this.initKaichang(); if (this.gameInfo.bgMusic!=""){ Common5.playMusicCustom(this.subBundle,this.gameInfo.bgMusic); } } initKaichang(){ // this.taici.string = this.gameInfo.PrefabInfo[this.curSceneIndex].kaichang; Game.ins.setTitle(this.gameInfo.PrefabInfo[this.curSceneIndex].title); if (this.gameInfo.PrefabInfo[this.curSceneIndex].kaichang&& this.gameInfo.PrefabInfo[this.curSceneIndex].kaichang!=""){ this.showSay(this.gameInfo.PrefabInfo[this.curSceneIndex].kaichang); } this.initMapNodeTouchEvent(this.gameInfo.PrefabInfo[this.curSceneIndex].delay); if (this.gameInfo.PrefabInfo[this.curSceneIndex].kaichangSound && this.gameInfo.PrefabInfo[this.curSceneIndex].kaichangSound!=""){ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+this.gameInfo.PrefabInfo[this.curSceneIndex].kaichangSound); } this.specialKaichang(); } specialKaichang(){ if (this.gameId == 1702){ this.scheduleOnce(()=>{ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"妈妈,你还没检查床底呢"); this.showSay("妈妈,你还没检查床底呢",true,1); },2) } else if (this.gameId == 1703){ this.scheduleOnce(()=>{ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"走开走开,别挡老子的路"); this.showSay("走开走开,别挡老子的路"); },6) } } setTimeNode(){ let worldPos = this.timeNode.getPosition() Game.ins.setTimePos(worldPos.x,worldPos.y) Game.ins.setTimeScale(0.7) } init_line(){ let answerNode = null if(this.gameInfo.PrefabInfo[this.curSceneIndex].zhaoChaType == ZhaoChaConfig_v7.getInstance().getZhaoChaType().Type1){ answerNode = null; this.answerNodeType1.active = false; this.answerNodeType2.active = false; this.answerNodeType3.active = false; } else if(this.gameInfo.PrefabInfo[this.curSceneIndex].zhaoChaType == ZhaoChaConfig_v7.getInstance().getZhaoChaType().Type2){ answerNode = this.answerNodeType1; this.answerNodeType1.active = true; this.answerNodeType2.active = false; this.answerNodeType3.active = false; } else if(this.gameInfo.PrefabInfo[this.curSceneIndex].zhaoChaType == ZhaoChaConfig_v7.getInstance().getZhaoChaType().Type3){ answerNode = this.answerNodeType2; this.answerNodeType1.active = false; this.answerNodeType2.active = true; this.answerNodeType3.active = false; } else if(this.gameInfo.PrefabInfo[this.curSceneIndex].zhaoChaType == ZhaoChaConfig_v7.getInstance().getZhaoChaType().Type4){ answerNode = this.answerNodeType3; this.answerNodeType1.active = false; this.answerNodeType2.active = false; this.answerNodeType3.active = true; } for(var i=0;i{ this.mapNode = prefabNode this.scheduleOnce(()=>{ this.mapNode.on(cc.Node.EventType.TOUCH_START, this.touchStart_mapNode,this) this.mapNode.on(cc.Node.EventType.TOUCH_MOVE, this.touchMove_mapNode,this) this.mapNode.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEnd_mapNode,this) this.mapNode.on(cc.Node.EventType.TOUCH_END, this.touchEnd_mapNode,this) },delayClick) let prefabWidth = this.mapNode.width let prefabHeight = this.mapNode.height let maskWidth = this.maskNode.width let maskHeight = this.maskNode.height let widthScale = maskWidth/prefabWidth let heightScale = maskHeight/prefabHeight if(prefabWidth= 0 && this.touchId2 >= 0){ // console.log("邵阳1—双点触摸开始") } this.touchStartTime = Date.now() } touchMove_mapNode(event){ let touches = event.getTouches() if(touches.length == 2){ //缩放 if(this.originalTouchDistance == 0){ this.originalTouchDistance = this.getDistance(touches[0].getLocation(),touches[1].getLocation()) } //获取双指移动数据 let curDistance = this.getDistance(touches[0].getLocation(),touches[1].getLocation()) let tempScale = curDistance/this.originalTouchDistance let y = 0.5*tempScale + 0.5 let scale = y * this.lastScale if(scale < this.mapNodeFixedScale){ scale = this.mapNodeFixedScale }else if(scale > 3){ scale = 3 }else{ } this.mapNode.scale = scale this.curScale = scale }else if(touches.length == 1){ //拖动 let delta = event.getDelta() this.mapNode.x += delta.x this.mapNode.y += delta.y this.goToBoundary() } } touchEnd_mapNode(event){ if(Date.now() - this.touchStartTime > 0.2 * 1000){ }else{ if (this.gameInfo.PrefabInfo[this.curSceneIndex].num == 0){ this.changeScene(); } else { this.isFind = false; let touchPos = event.getLocation(); this.checkIsInAreaNewVersion(touchPos) if(!this.isFind && this.gameInfo.AddTime){ let pos = Common5.getPosInWorld_custom(this.timeNode); pos.x = pos.x + 80; // Common5.showTips_customTimeNew(this.gameInfo.AddTime.toString(), 0.3, pos); // Game.ins.addTick(this.gameInfo.AddTime); } } } if(event.touch.getID() == this.touchId1){ this.touchId1 = -1 }else if(event.touch.getID() == this.touchId2){ this.touchId2 = -2 } if(this.touchId1 < 0 && this.touchId2 < 0){ this.originalTouchDistance = 0 this.lastScale = this.curScale } } showBlack(delay){ let node = this.node.getChildByName("black") node.active = true; node.opacity = 0; cc.tween(node).to(delay/2,{opacity:255}).delay(1).to(delay/2,{opacity:0}).call(()=>{ node.active = false; }).start(); } callSceneEnd(){ if (this.gameId == 1701){ if (this.curSceneIndex == 0){ this.mapNode.getChildByName("dianti").active = true; } else if (this.curSceneIndex == 1){ this.gameInfo.ChaNode[this.curSceneIndex]["xie"].isCanTouch = false; this.mapNode.getChildByName("xiegui").active = false; this.mapNode.getChildByName("chaDianNode").getChildByName("xie").active = false; this.mapNode.getChildByName("changjing2dianti").getComponent(sp.Skeleton).animation = "xiaonvhai"; Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"小孩开始出现时"); this.scheduleOnce(()=>{ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"叔叔,我在这住了好几年了,我帮你带路吧"); this.showSay("叔叔,我在这住了好几年了,我帮你带路吧"); this.scheduleOnce(()=>{ this.mapNode.getChildByName("changjing2dianti").getComponent(sp.Skeleton).animation = "5lou"; },3) },3) } } else if (this.gameId == 1702){ this.mapNode.getChildByName("lightOff1").active = true; this.mapNode.getChildByName("lightOff2").active = true; this.mapNode.getChildByName("finish").active = true; this.mapNode.getChildByName("feiChaDianNode").getChildByName("submit").active = true; this.mapNode.getChildByName("feiChaDianNode").getChildByName("btn3").active = true; this.mapNode.getChildByName("feiChaDianNode").getChildByName("btn2").active = true; this.mapNode.getChildByName("feiChaDianNode").getChildByName("btn1").active = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["submit"].isCanTouch = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["btn3"].isCanTouch = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["btn2"].isCanTouch = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["btn1"].isCanTouch = true; } } callSceneBegin(){ } changeScene(){ let delay = 0; this.callSceneEnd(); delay = this.gameInfo.PrefabInfo[this.curSceneIndex].finishDelay; this.scheduleOnce(()=>{ if (this.gameInfo.PrefabInfo[this.curSceneIndex].finishSound && this.gameInfo.PrefabInfo[this.curSceneIndex].finishSound!=""){ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+this.gameInfo.PrefabInfo[this.curSceneIndex].finishSound); this.showSay(this.gameInfo.PrefabInfo[this.curSceneIndex].finishTaici); }},delay) this.scheduleOnce(()=>{ this.findTimes = 0; let time = 4; if (this.curSceneIndex < this.gameInfo.PrefabInfo.length-1){ this.curSceneIndex++; this.scheduleOnce(()=>{ this.mapNode.removeFromParent(); this.init_line(); this.initKaichang(); },time/2) this.showBlack(time); } else{ let timeNum = 0.1 this.scheduleOnce(()=>{ if (this.gameInfo.autoFinish){ this.endGameView(1) } },timeNum) } },delay*2) } //距离 getDistance(startPos,endPos){ var pos = cc.v2(startPos.x - endPos.x,startPos.y - endPos.y) var dis = Math.sqrt(pos.x * pos.x + pos.y * pos.y) return dis } //检测边界 goToBoundary(){ let widthMask = this.maskNode.width let heightMask = this.maskNode.height let widthMap = this.mapNode.width*this.curScale let heightMap = this.mapNode.height*this.curScale //右边界 if(this.mapNode.x + widthMap/2 <= widthMask/2){ this.mapNode.x = widthMask/2 - widthMap/2 //左边界 }else if(this.mapNode.x - widthMap/2>= -widthMask/2){ this.mapNode.x = -widthMask/2 + widthMap/2 } //上边界 if(this.mapNode.y + heightMap/2 <= heightMask/2){ this.mapNode.y = heightMask/2 - heightMap/2 //下边界 }else if(this.mapNode.y - heightMap/2 >= -heightMask/2){ this.mapNode.y = -heightMask/2 + heightMap/2 } } //找到一个茬点 findOnChaDian(curNode){ let markParent = curNode Common5.playEffect("success2") if(this.gameInfo.PrefabInfo[this.curSceneIndex].isShowMark){ let mark = cc.instantiate(this.markSp) mark.active = true markParent.addChild(mark) } let parentNode = null if(this.gameInfo.PrefabInfo[this.curSceneIndex].zhaoChaType == ZhaoChaConfig_v7.getInstance().getZhaoChaType().Type1){ parentNode = null }else if(this.gameInfo.PrefabInfo[this.curSceneIndex].zhaoChaType == ZhaoChaConfig_v7.getInstance().getZhaoChaType().Type2){ parentNode = this.answerNodeType1 } else if(this.gameInfo.PrefabInfo[this.curSceneIndex].zhaoChaType == ZhaoChaConfig_v7.getInstance().getZhaoChaType().Type3){ parentNode = this.answerNodeType2 } else if(this.gameInfo.PrefabInfo[this.curSceneIndex].zhaoChaType == ZhaoChaConfig_v7.getInstance().getZhaoChaType().Type4){ parentNode = this.answerNodeType3 } let childNode = parentNode.getChildByName("xhx_"+this.findTimes) let answerIcon = cc.instantiate(curNode.getChildByName("childIcon")); answerIcon.active = true; answerIcon.parent = childNode Common5.setNodeToTargetPos(answerIcon,curNode.getChildByName("childIcon")) this.findTimes += 1 // answerIcon.scale = 0 let endDelay = 0.4 if (this.gameInfo.ChaNode[this.curSceneIndex][curNode.name].sound != ""){ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+this.gameInfo.ChaNode[this.curSceneIndex][curNode.name].sound); if (this.gameInfo.ChaNode[this.curSceneIndex][curNode.name].index){ this.showSay(this.gameInfo.ChaNode[this.curSceneIndex][curNode.name].text,true,this.gameInfo.ChaNode[this.curSceneIndex][curNode.name].index); } else{ this.showSay(this.gameInfo.ChaNode[this.curSceneIndex][curNode.name].text); } } if(this.findTimes >= this.gameInfo.PrefabInfo[this.curSceneIndex].num){ endDelay = this.gameInfo.PrefabInfo.endDelay||1 cc.tween(answerIcon) .to(0.4,{x:0,y:0}) .delay(endDelay) .call(()=>{ if(!cc.isValid(childNode)){ return } childNode.getChildByName("desc").active = true childNode.getChildByName("desc").getComponent(cc.Label).string = this.gameInfo.ChaNode[this.curSceneIndex][curNode.name].desc console.log("已完成个数==",this.findTimes) if(this.findTimes >= this.gameInfo.PrefabInfo[this.curSceneIndex].num){ console.log("完成任务===") this.changeScene(); return } }) .start() }else{ cc.tween(answerIcon) .to(0.4,{x:0,y:0}) .call(()=>{ childNode.getChildByName("desc").active = true childNode.getChildByName("desc").getComponent(cc.Label).string = this.gameInfo.ChaNode[this.curSceneIndex][curNode.name].desc console.log("已完成个数==",this.findTimes) if(this.findTimes >= this.gameInfo.PrefabInfo[this.curSceneIndex].num){ console.log("完成任务===") this.changeScene(); return } }) .start() } this.findChaDianSpecialLogic(curNode,answerIcon) } //检测node是否进入target区域(新版) checkIsInAreaNewVersion(pos){ //茬点触碰逻辑 if (this.gameInfo.PrefabInfo[this.curSceneIndex].num <= 0){ return; } let childrens = this.mapNode.getChildByName("chaDianNode").children; for(var i =childrens.length-1;i>=0;i--){ let rect = childrens[i].getBoundingBoxToWorld() if(rect.contains(pos)){ if(this.gameInfo.ChaNode[this.curSceneIndex][childrens[i].name].isFindOut){ continue }else{ //暂不可点击 if(!this.gameInfo.ChaNode[this.curSceneIndex][childrens[i].name].isCanTouch){ continue } this.gameInfo.ChaNode[this.curSceneIndex][childrens[i].name].isFindOut = true this.gameInfo.ChaNode[this.curSceneIndex][childrens[i].name].isCanTouch = false this.findOnChaDian(childrens[i]) console.log(this.gameInfo.ChaNode[this.curSceneIndex][childrens[i].name].needHid) if (this.gameInfo.ChaNode[this.curSceneIndex][childrens[i].name].needHid){ childrens[i].active = false; } this.isFind = true } break } else{ } } this.handSpecialGameLogic(pos) } //特殊节点的点击事件(主要处理节点可以移动的问题) specialNodeTouchEvent(){ if (this.gameId == 1701){ if (this.curSceneIndex == 2){ this.openTouchEvent1(this.mapNode.getChildByName("zhengtou")); } } else if (this.gameId == 1703){ this.mapNode.getChildByName("kuangquanshui")["startPos"] = this.mapNode.getChildByName("kuangquanshui").position; this.openTouchEvent1(this.mapNode.getChildByName("kuangquanshui")); this.mapNode.getChildByName("bangqiugun")["startPos"] = this.mapNode.getChildByName("bangqiugun").position; this.openTouchEvent1(this.mapNode.getChildByName("bangqiugun")); } } //特殊关卡处理 handSpecialGameLogic(pos){ //非茬点触碰逻辑 if(!this.mapNode.getChildByName("feiChaDianNode")){ return } if(this.gameId == 1701){ this.specialMap1701(pos) } else if (this.gameId == 1702){ this.specialMap1702(pos); } else if (this.gameId == 1703){ this.specialMap1703(pos); } } openTouchEvent(node,attrs){ node.attr(attrs) this.openTouchEvent1(node) } openMaptouch(){ this.mapNode.on(cc.Node.EventType.TOUCH_START, this.touchStart_mapNode,this) this.mapNode.on(cc.Node.EventType.TOUCH_MOVE, this.touchMove_mapNode,this) this.mapNode.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEnd_mapNode,this) this.mapNode.on(cc.Node.EventType.TOUCH_END, this.touchEnd_mapNode,this) } closeMaptouch(){ this.mapNode.off(cc.Node.EventType.TOUCH_START) this.mapNode.off(cc.Node.EventType.TOUCH_MOVE) this.mapNode.off(cc.Node.EventType.TOUCH_CANCEL) this.mapNode.off(cc.Node.EventType.TOUCH_END) } openTouchEvent1(node){ node.on(cc.Node.EventType.TOUCH_START,this.touchStartSpecicalNode,this) node.on(cc.Node.EventType.TOUCH_MOVE,this.touchMoveSpecicalNode,this) node.on(cc.Node.EventType.TOUCH_CANCEL,this.touchEndSpecicalNode,this) node.on(cc.Node.EventType.TOUCH_END,this.touchEndSpecicalNode,this) } closeTouchEvent(node){ node.off(cc.Node.EventType.TOUCH_START,this.touchStartSpecicalNode,this) node.off(cc.Node.EventType.TOUCH_MOVE,this.touchMoveSpecicalNode,this) node.off(cc.Node.EventType.TOUCH_CANCEL,this.touchEndSpecicalNode,this) node.off(cc.Node.EventType.TOUCH_END,this.touchEndSpecicalNode,this) } touchStartSpecicalNode(event){ Common5.playEffect("click") this.closeMaptouch(); let target = event.target; if (target.getChildByName("show")){ target.getChildByName("show").active = true; } if (this.gameId == 1703){ if (target.name == "kuangquanshui"){ this.mapNode.getChildByName("dage").getComponent(sp.Skeleton).setSkin("default"); } } // event.target.startPos = event.target.getPosition(); // event.target.zIndex = this.curZIndex++; } touchMoveSpecicalNode(event){ let nodeLoc = event.getLocation() let nodePos = event.target.parent.convertToNodeSpaceAR(nodeLoc) event.target.setPosition(nodePos) if (event.target["realTarget"]){ event.target["realTarget"].setPosition(nodePos) } } touchEndSpecicalNode(event){ this.openMaptouch(); event.target.zIndex = 0 let target = event.target; if (this.gameId == 1701){ if (event.target.name == "zhengtou"){ if (!Common5.checkContainsNode(this.mapNode.getChildByName("zhengtou"),this.mapNode.getChildByName("chaDianNode").getChildByName("pinganfu"))){ this.mapNode.getChildByName("zhengtou").active = false; this.mapNode.getChildByName("chaDianNode").getChildByName("pinganfu").active = true; this.gameInfo.ChaNode[this.curSceneIndex]["pinganfu"].isCanTouch = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["zhengtou"].isCanTouch = false; } } } else if (this.gameId == 1703){ if (target.name == "kuangquanshui"){ if (Common5.checkIntersectsBox(target,this.mapNode.getChildByName("chaDianNode").getChildByName("nanlian")) && this.gameInfo.ChaNode[this.curSceneIndex]["nanlian"].isCanTouch == false){ this.mapNode.getChildByName("daoshuinan").active = true; Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"泼水"); this.mapNode.getChildByName("dahan").getComponent(sp.Skeleton).animation = "daoshui"; this.scheduleOnce(()=>{ this.mapNode.getChildByName("daoshuinan").active = false; this.gameInfo.ChaNode[this.curSceneIndex]["nanlian"].isCanTouch = true; this.mapNode.getChildByName("dahan").getComponent(sp.Skeleton).animation = "daoshuidaiji"; this.mapNode.getChildByName("dahan")["daiji"] = "daoshuidaiji"; this.mapNode.getChildByName("dage").getComponent(sp.Skeleton).setSkin("kuangquanshui"); },2) } else if (Common5.checkIntersectsBox(target,this.mapNode.getChildByName("chaDianNode").getChildByName("nvlian")) && this.gameInfo.ChaNode[this.curSceneIndex]["nvlian"].isCanTouch == false){ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"泼水"); this.mapNode.getChildByName("daoshuinv").active = true; this.mapNode.getChildByName("dama").getComponent(sp.Skeleton).animation = "daoshui"; this.gameInfo.ChaNode[this.curSceneIndex]["nvlian"].isCanTouch = true; this.gameInfo.ChaNode[this.curSceneIndex]["shouwan"].isCanTouch = true; this.scheduleOnce(()=>{ this.mapNode.getChildByName("daoshuinv").active = false; this.mapNode.getChildByName("dama").getComponent(sp.Skeleton).animation = "daoshuidaiji"; this.mapNode.getChildByName("dage").getComponent(sp.Skeleton).setSkin("kuangquanshui"); },2) } } else if (target.name == "bangqiugun"){ if (Common5.checkIntersectsBox(target,this.mapNode.getChildByName("bangqiugunSpin"))){ this.mapNode.getChildByName("bangqiugunSpin").active = true; this.mapNode.getChildByName("bangqiugun").active = false; Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"棒子打人"); this.scheduleOnce(()=>{ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"哎呀怎么还动手呢,我要告你"); this.showSay("哎呀怎么还动手呢,我要告你"); },1) this.mapNode.getChildByName("bangqiugunSpin").getComponent(sp.Skeleton).setAnimation(0,"qiao",false) if (this.mapNode.getChildByName("dahan")["daiji"]){ this.mapNode.getChildByName("dahan").getComponent(sp.Skeleton).animation = "xionglianbeida"; } else{ this.mapNode.getChildByName("dahan").getComponent(sp.Skeleton).animation = "beida"; } this.scheduleOnce(()=>{ this.mapNode.getChildByName("bangqiugun").active = true; this.mapNode.getChildByName("bangqiugunSpin").active = false; if (this.mapNode.getChildByName("dahan")["daiji"]){ this.mapNode.getChildByName("dahan").getComponent(sp.Skeleton).animation = "daoshuidaiji"; } else { this.mapNode.getChildByName("dahan").getComponent(sp.Skeleton).animation = "daiji"; } if (this.mapNode.getChildByName("dahan")["beida"]){ this.mapNode.getChildByName("dahan")["beida"]++; if (this.mapNode.getChildByName("dahan")["beida"] ==5){ this.mapNode.getChildByName("chaDianNode").getChildByName("shouji").active = true; this.mapNode.getChildByName("chaDianNode").getChildByName("bangbangtang").active = true; this.mapNode.getChildByName("chaDianNode").getChildByName("menghanyao").active = true; this.mapNode.getChildByName("chaDianNode").getChildByName("yifu").active = true; cc.tween(this.mapNode.getChildByName("chaDianNode").getChildByName("shouji")).by(0.5,{y:-150}).start(); cc.tween(this.mapNode.getChildByName("chaDianNode").getChildByName("bangbangtang")).by(0.5,{y:-150}).start(); cc.tween(this.mapNode.getChildByName("chaDianNode").getChildByName("menghanyao")).by(0.5,{y:-150}).start(); cc.tween(this.mapNode.getChildByName("chaDianNode").getChildByName("yifu")).by(0.5,{y:-150}).start(); this.scheduleOnce(()=>{ this.gameInfo.ChaNode[this.curSceneIndex]["shouji"].isCanTouch = true; this.gameInfo.ChaNode[this.curSceneIndex]["bangbangtang"].isCanTouch = true; this.gameInfo.ChaNode[this.curSceneIndex]["menghanyao"].isCanTouch = true; this.gameInfo.ChaNode[this.curSceneIndex]["yifu"].isCanTouch = true; },0.5) } } else{ this.mapNode.getChildByName("dahan")["beida"] = 1; } },2) } } else if (target.name == "qian"){ if (Common5.checkIntersectsBox(target,this.mapNode.getChildByName("dahan")) || Common5.checkIntersectsBox(target,this.mapNode.getChildByName("dama"))){ target.active = false; this.mapNode.getChildByName("dahan").getComponent(sp.Skeleton).setAnimation(0,"taomadai",false); Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"给你给你,赶紧给我把路让开"); this.showSay("给你给你,赶紧给我把路让开"); this.scheduleOnce(()=>{ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"嘿嘿,又骗到一个"); this.showSay("嘿嘿,又骗到一个"); },3.5) this.scheduleOnce(()=>{ this.mapNode.getChildByName("black").active = true; cc.tween(this.mapNode.getChildByName("black")).to(0.2,{opacity:255}).delay(1).call(()=>{ this.endGameView(0) }).start(); },4.5) } } } if(event.target.touchArea && Common5.checkContainsNode(event.target.touchArea,event.target)){ this.closeTouchEvent(event.target) event.target.active = false event.target.endNode && (event.target.endNode.active = true) event.target.bindChaNodeInfo && (event.target.bindChaNodeInfo.isCanTouch = true) event.target.callFunction && event.target.callFunction() }else{ if (event.target.startPos){ if (target.getChildByName("show")){ target.getChildByName("show").active = false; } event.target.setPosition(event.target.startPos) if (this.gameId == 1703){ if (target.name == "kuangquanshui"){ this.mapNode.getChildByName("dage").getComponent(sp.Skeleton).setSkin("kuangquanshui"); } } } } } findChaDianSpecialLogic(curNode,answerIcon){ if (this.gameId == 1701){ if (curNode.name == "jinzhishiyong"){ this.scheduleOnce(()=>{ this.mapNode.getChildByName("changjing2dianti").getComponent(sp.Skeleton).animation = "3lou"; this.scheduleOnce(()=>{ this.gameInfo.ChaNode[this.curSceneIndex]["xie"].isCanTouch = true; this.mapNode.getChildByName("xiegui").active = true; this.mapNode.getChildByName("chaDianNode").getChildByName("xie").active = true; },3.5) this.scheduleOnce(()=>{ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"ding"); },2.5) },2) } if (this.curSceneIndex == 2 && this.findTimes == 5){ this.scheduleOnce(()=>{ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"王院长,他已经在慢慢找回记忆了"); },3.5) } } else if (this.gameId == 1703){ if (curNode.name == "shouwan"){ this.mapNode.getChildByName("dage").getComponent(sp.Skeleton).setAnimation(0,"zhuaxiaonvhai",false); this.mapNode.getChildByName("dama").getComponent(sp.Skeleton).setAnimation(0,"xiaonvhaibeizhuazou",false); this.scheduleOnce(()=>{ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"这都抓出印子了,谁家妈这么牵孩子的"); this.showSay("这都抓出印子了,谁家妈这么牵孩子的"); this.mapNode.getChildByName("dage").getComponent(sp.Skeleton).setAnimation(0,"xiaonvhaidaiji",true); this.mapNode.getChildByName("dama").getComponent(sp.Skeleton).setAnimation(0,"damadaiji",true); this.mapNode.getChildByName("dage")["xiaonvhai"] = true; },1) } } } //map_1701 specialMap1701(pos){ let feiChaDianChildrens = this.mapNode.getChildByName("feiChaDianNode").children for(var i =feiChaDianChildrens.length-1;i >= 0;i--){ //可以触摸且未触发过 if(this.gameInfo.FeiChaDian[this.curSceneIndex][feiChaDianChildrens[i].name] && this.gameInfo.FeiChaDian[this.curSceneIndex][feiChaDianChildrens[i].name].isCanTouch && !this.gameInfo.FeiChaDian[this.curSceneIndex][feiChaDianChildrens[i].name].isTouchOff){ let rect = feiChaDianChildrens[i].getBoundingBoxToWorld() if(rect.contains(pos)){ if (feiChaDianChildrens[i].name == "baozhiXiao"){ this.mapNode.getChildByName("chaDianNode").getChildByName("baozhi").active = true; this.mapNode.getChildByName("feiChaDianNode").getChildByName("baozhiXiao").active = false; this.gameInfo.ChaNode[this.curSceneIndex]["baozhi"].isCanTouch = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["baozhiXiao"].isCanTouch = false; this.isFind = true; } else if (feiChaDianChildrens[i].name == "chufentongzhiFei"){ this.mapNode.getChildByName("chaDianNode").getChildByName("chufentongzhi").active = true; this.mapNode.getChildByName("feiChaDianNode").getChildByName("chufentongzhiFei").active = false; this.gameInfo.ChaNode[this.curSceneIndex]["chufentongzhi"].isCanTouch = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["chufentongzhiFei"].isCanTouch = false; this.isFind = true; } else if (feiChaDianChildrens[i].name == "bingweitongzhiFei"){ this.mapNode.getChildByName("feiChaDianNode").getChildByName("bingweitongzhiFei").active = false; this.mapNode.getChildByName("chaDianNode").getChildByName("bingweitongzhi").active = true; this.gameInfo.ChaNode[this.curSceneIndex]["bingweitongzhi"].isCanTouch = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["bingweitongzhiFei"].isCanTouch = false; this.isFind = true; } else if (feiChaDianChildrens[i].name == "yishuFei"){ this.mapNode.getChildByName("feiChaDianNode").getChildByName("yishuFei").active = false; this.mapNode.getChildByName("chaDianNode").getChildByName("yishu").active = true; this.gameInfo.ChaNode[this.curSceneIndex]["yishu"].isCanTouch = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["yishuFei"].isCanTouch = false; this.isFind = true; } else if (feiChaDianChildrens[i].name == "zhengtou"){ // this.mapNode.getChildByName("zhengtou").active = false; // this.mapNode.getChildByName("chaDianNode").getChildByName("pinganfu").active = true; // this.gameInfo.ChaNode[this.curSceneIndex]["pinganfu"].isCanTouch = true; // this.gameInfo.FeiChaDian[this.curSceneIndex]["zhengtou"].isCanTouch = false; this.isFind = true; } else if (feiChaDianChildrens[i].name == "guizi"){ this.mapNode.getChildByName("guiziguan").active = false; this.mapNode.getChildByName("chaDianNode").getChildByName("maoyi").active = true; this.mapNode.getChildByName("chaDianNode").getChildByName("naiping").active = true; this.mapNode.getChildByName("guizikai").active = true; this.gameInfo.ChaNode[this.curSceneIndex]["maoyi"].isCanTouch = true; this.gameInfo.ChaNode[this.curSceneIndex]["naiping"].isCanTouch = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["guizi"].isCanTouch = false; this.isFind = true; } else if (feiChaDianChildrens[i].name == "qianbaoFei"){ this.mapNode.getChildByName("feiChaDianNode").getChildByName("qianbaoFei").active = false; this.mapNode.getChildByName("chaDianNode").getChildByName("qianbao").active = true; this.gameInfo.ChaNode[this.curSceneIndex]["qianbao"].isCanTouch = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["qianbaoFei"].isCanTouch = false; this.isFind = true; } else if (feiChaDianChildrens[i].name == "chuangyan"){ this.mapNode.getChildByName("feiChaDianNode").getChildByName("chuangdi").active = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["chuangdi"].isCanTouch = true; Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"叔叔,我在和妈妈躲猫猫"); this.showSay("叔叔,我在和妈妈躲猫猫"); this.isFind = true; } else if (feiChaDianChildrens[i].name == "chuangdi"){ this.mapNode.getChildByName("feiChaDianNode").getChildByName("chuangdi").active = false; this.gameInfo.FeiChaDian[this.curSceneIndex]["chuangdi"].isCanTouch = false; this.isFind = true; } break; } } } } specialMap1702(pos){ let feiChaDianChildrens = this.mapNode.getChildByName("feiChaDianNode").children for(var i =feiChaDianChildrens.length-1;i >= 0;i--){ //可以触摸且未触发过 if(this.gameInfo.FeiChaDian[this.curSceneIndex][feiChaDianChildrens[i].name] && this.gameInfo.FeiChaDian[this.curSceneIndex][feiChaDianChildrens[i].name].isCanTouch && !this.gameInfo.FeiChaDian[this.curSceneIndex][feiChaDianChildrens[i].name].isTouchOff){ let rect = feiChaDianChildrens[i].getBoundingBoxToWorld() if(rect.contains(pos)){ if (feiChaDianChildrens[i].name == "chuangtougui"){ this.mapNode.getChildByName("chaDianNode").getChildByName("cd2").active = true; this.gameInfo.ChaNode[this.curSceneIndex]["cd2"].isCanTouch = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["chuangtougui"].isCanTouch = false; this.isFind = true; } else if (feiChaDianChildrens[i].name == "kaiguan"){ if (!this.mapNode.getChildByName("chaDianNode").getChildByName("cd7").active){ this.mapNode.getChildByName("chaDianNode").getChildByName("cd7").active = true; this.mapNode.getChildByName("chaDianNode").getChildByName("cd10").active = true; this.mapNode.getChildByName("lightOff1").active = true; this.mapNode.getChildByName("lightOff2").active = true; this.gameInfo.ChaNode[this.curSceneIndex]["cd7"].isCanTouch = true; this.gameInfo.ChaNode[this.curSceneIndex]["cd10"].isCanTouch = true; this.gameInfo.ChaNode[this.curSceneIndex]["cd9"].isCanTouch = true; this.mapNode.getChildByName("taideng").getComponent(sp.Skeleton).animation = "shanshuo"; } else{ this.mapNode.getChildByName("chaDianNode").getChildByName("cd7").active = false; this.mapNode.getChildByName("chaDianNode").getChildByName("cd10").active = false; this.gameInfo.ChaNode[this.curSceneIndex]["cd7"].isCanTouch = false; this.gameInfo.ChaNode[this.curSceneIndex]["cd10"].isCanTouch = false; this.gameInfo.ChaNode[this.curSceneIndex]["cd9"].isCanTouch = false; this.mapNode.getChildByName("lightOff1").active = false; this.mapNode.getChildByName("lightOff2").active = false; this.mapNode.getChildByName("taideng").getComponent(sp.Skeleton).animation = "an"; } this.isFind = true; } else if (feiChaDianChildrens[i].name == "guiziguan"){ this.mapNode.getChildByName("feiChaDianNode").getChildByName("guiziguan").active = false; this.gameInfo.FeiChaDian[this.curSceneIndex]["guiziguan"].isCanTouch = false; this.mapNode.getChildByName("guiziheren").active = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["shijuan"].isCanTouch = true; this.gameInfo.ChaNode[this.curSceneIndex]["cd4"].isCanTouch = true; Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"妈妈,你怎么这么快就发现我了"); this.showSay("妈妈,你怎么这么快就发现我了",true,3); this.isFind = true; } else if (feiChaDianChildrens[i].name == "chuangdi"){ this.mapNode.getChildByName("feiChaDianNode").getChildByName("chuangxiayouren").active = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["chuangxiayouren"].isCanTouch = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["chuangdi"].isCanTouch = false; Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"妈妈,有人占了我的床"); this.showSay("妈妈,有人占了我的床",true,2); this.isFind = true; } else if (feiChaDianChildrens[i].name == "chuangxiayouren"){ this.mapNode.getChildByName("feiChaDianNode").getChildByName("chuangxiayouren").active = false; this.gameInfo.FeiChaDian[this.curSceneIndex]["chuangxiayouren"].isCanTouch = false; this.gameInfo.FeiChaDian[this.curSceneIndex]["chuangdi"].isCanTouch = true; this.isFind = true; } else if (feiChaDianChildrens[i].name == "shijuan"){ this.mapNode.getChildByName("chaDianNode").getChildByName("cd1").active = true; this.gameInfo.FeiChaDian[this.curSceneIndex]["shijuan"].isCanTouch = false; this.gameInfo.ChaNode[this.curSceneIndex]["cd1"].isCanTouch = true; this.isFind = true; } else if (feiChaDianChildrens[i].name == "submit"){ this.gameInfo.FeiChaDian[this.curSceneIndex]["submit"].isCanTouch = false; this.scheduleOnce(()=>{ if (this.mapNode.getChildByName("feiChaDianNode").getChildByName("btn1").getChildByName("check").active && this.mapNode.getChildByName("feiChaDianNode").getChildByName("btn2").getChildByName("check").active && this.mapNode.getChildByName("feiChaDianNode").getChildByName("btn3").getChildByName("check").active){ this.endGameView(1) } else{ this.endGameView(0) } },3.0) this.isFind = true; } else if (feiChaDianChildrens[i].name == "btn1"){ let node = this.mapNode.getChildByName("feiChaDianNode").getChildByName("btn1").getChildByName("check"); node.active = !node.active; this.isFind = true; } else if (feiChaDianChildrens[i].name == "btn2"){ let node = this.mapNode.getChildByName("feiChaDianNode").getChildByName("btn2").getChildByName("check"); node.active = !node.active; this.isFind = true; } else if (feiChaDianChildrens[i].name == "btn3"){ let node = this.mapNode.getChildByName("feiChaDianNode").getChildByName("btn3").getChildByName("check"); node.active = !node.active; this.isFind = true; } break; } } } } specialMap1703(pos){ let feiChaDianChildrens = this.mapNode.getChildByName("feiChaDianNode").children for(var i =feiChaDianChildrens.length-1;i >= 0;i--){ //可以触摸且未触发过 if(this.gameInfo.FeiChaDian[this.curSceneIndex][feiChaDianChildrens[i].name] && this.gameInfo.FeiChaDian[this.curSceneIndex][feiChaDianChildrens[i].name].isCanTouch && !this.gameInfo.FeiChaDian[this.curSceneIndex][feiChaDianChildrens[i].name].isTouchOff){ let rect = feiChaDianChildrens[i].getBoundingBoxToWorld() if(rect.contains(pos)){ if (feiChaDianChildrens[i].name == "xunrenqishiFei"){ this.mapNode.getChildByName("chaDianNode").getChildByName("xunrenqishi").active = true; this.gameInfo.ChaNode[this.curSceneIndex]["xunrenqishi"].isCanTouch = true; this.mapNode.getChildByName("feiChaDianNode").getChildByName("xunrenqishiFei").active = false; this.gameInfo.FeiChaDian[this.curSceneIndex]["xunrenqishiFei"].isCanTouch = false; this.isFind = true; } else if (feiChaDianChildrens[i].name == "qianbao"){ if (this.mapNode.getChildByName("dage")["xiaonvhai"]){ this.mapNode.getChildByName("dage").getComponent(sp.Skeleton).setAnimation(0,"qianxiaonvhaidaiji",true); } else{ this.mapNode.getChildByName("dage").getComponent(sp.Skeleton).setAnimation(0,"qiandaiji",true); } this.gameInfo.FeiChaDian[this.curSceneIndex]["qianbao"].isCanTouch = false; this.isFind = true; this.mapNode.getChildByName("qian")["startPos"] = this.mapNode.getChildByName("qian").position; this.openTouchEvent1(this.mapNode.getChildByName("qian")); this.isFind = true; } else if (feiChaDianChildrens[i].name == "laohu"){ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"干什么干什么,这是我猛男的标志"); this.showSay("干什么干什么,这是我猛男的标志"); this.isFind = true; } else if (feiChaDianChildrens[i].name == "dage"){ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"走开走开,别挡老子的路"); this.showSay("走开走开,别挡老子的路"); this.isFind = true; } else if (feiChaDianChildrens[i].name == "dama"){ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"孩子还小,不能跟着我们一起受苦呀"); this.showSay("孩子还小,不能跟着我们一起受苦呀"); this.isFind = true; } else if (feiChaDianChildrens[i].name == "dahan"){ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"我们大人可以将就一下,孩子不行呀"); this.showSay("我们大人可以将就一下,孩子不行呀"); this.isFind = true; } else if (feiChaDianChildrens[i].name == "xiaonvhai"){ Common5.playEffectCustom(this.subBundle,this.gameInfo.PrefabInfo[this.curSceneIndex].soundurl+"叔叔,帮帮我吧"); this.showSay("叔叔,帮帮我吧"); this.gameInfo.FeiChaDian[this.curSceneIndex]["xiaonvhai"].isCanTouch = false; this.isFind = true; } break; } } } } closePointerClick(){ } clickTime = 0; oldTaiciNode = null; showSay(text,specal?,index?){ if (specal == true){ if (this.gameId == 1702){ let taiciNode = null; if (index == 1){ taiciNode = this.mapNode.getChildByName("say1"); } else if (index == 2){ taiciNode = this.mapNode.getChildByName("say2"); } else if (index == 3){ taiciNode = this.mapNode.getChildByName("say3"); } if (taiciNode!=null){ if (this.oldTaiciNode != null){ this.oldTaiciNode.active = false; } this.oldTaiciNode = taiciNode; taiciNode.active = true; taiciNode.getChildByName("label").getComponent(cc.Label).string = text; this.clickTime = new Date().getTime(); this.scheduleOnce(()=>{ if (new Date().getTime() - this.clickTime > 1900){ taiciNode.active = false; } },3); } } return; } this.taici.node.parent.active = true; this.taici.string = text; this.clickTime = new Date().getTime(); this.scheduleOnce(()=>{ if (new Date().getTime() - this.clickTime > 1900){ this.taici.node.parent.active = false; } },4); } showWord(text){ this.taici.node.parent.active = true; let length = text.length; this.taici.string = ""; let index = 0; this.clickTime = new Date().getTime(); this.schedule(()=>{ // Common5.playEffectCustom(this.subBundle,"ZhaoCha_Version4/commonSound/word"); },2,length*0.2/2-1,0.5); this.schedule(()=>{ this.taici.string = this.taici.string+text[index] + " "; index++; },0.2,length-1,0.5); this.scheduleOnce(()=>{ this.taici.node.parent.active = false; },length*0.2 + 4); } endGameView(touchIndex) { Game.ins.stopTime(); if (touchIndex == 0) { if(this.isFailShow){ return } this.isFailShow = true this.scheduleOnce(() => { Game.ins.showFail(); }, 3); } else { if(this.isSuccessShow){ return } this.isSuccessShow = true this.scheduleOnce(() => { Game.ins.showSuccess(); },3); } } }