// Learn TypeScript: // - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html import DaDianScript from "../../../FrameWork/Base/DaDianScript"; import WordGameBaseComponent from "../../../FrameWork/Base/WordGameBaseComptent"; import { ryw_Event } from "../../../FrameWork/Event/EventEnum"; import EventMgr from "../../../FrameWork/Event/EventMgr"; import Common from "../../../FrameWork/Util/Common"; import Common5 from "../../../Platform/th/Common5"; import Game from "../../../Scripts/Game"; const {ccclass, property} = cc._decorator; @ccclass export default class GuoNianHuiJia extends WordGameBaseComponent { @property(cc.Node) myQipaoNode:cc.Node = null; @property(cc.Node) qipaoNode:cc.Node = null; @property(cc.Node) renwuNodeArray:cc.Node[] = []; @property(cc.Node) zhujueNode:cc.Node = null; @property(cc.Node) xiangqiNode:cc.Node = null; @property(cc.Node) damianyao:cc.Node = null; @property(cc.Node) jiugehetao:cc.Node = null; @property(cc.Node) mudichuandan:cc.Node = null; @property(cc.Node) shouyinji:cc.Node = null; @property(cc.Node) wanjuche:cc.Node = null; @property(cc.Node) chuiziNode:cc.Node = null; @property(cc.Node) yanbaNode:cc.Node = null; @property(cc.Node) kuBQNode:cc.Node = null; //文本配置 curIndex = 0 titleArrayConfig: string[] = []; duihuaArrayConfig: any[] = []; chadianArrayConfig: any[] = []; wrongAnswerConfig: string[] = []; answersDuihuaConfig: any[] = []; // onLoad () {} jsonData = null start () { super.start(); DaDianScript.userEnterDaDian(); Common5.getJsonFromBundle(Common5.selectGameInfo.bundle,'script/GuoNianHuiJiaConfig',(assest)=>{ this.jsonData = assest.json this.initParameters(); }) EventMgr.onEvent_custom(ryw_Event.DirectTouchMoveCheck, (data_) => { this.normalTouchCheckCallback(data_.targetNode); }, this); } //初始化参数 initParameters() { this.titleArrayConfig = this.jsonData.titleArray; this.duihuaArrayConfig = this.jsonData.duihuaArray; this.chadianArrayConfig = this.jsonData.chadianArray; this.wrongAnswerConfig = this.jsonData.wrongAnswer; this.answersDuihuaConfig = this.jsonData.answersDuihua; Common.Type = 3; Common.subLevel = 0; Common.GameSubTipConfigs = this.jsonData.answersArray; this.curIndex = 0 let regiNodes = [this.xiangqiNode, this.damianyao,this.jiugehetao,this.mudichuandan,this.shouyinji, this.wanjuche,this.chuiziNode,this.yanbaNode, ] for(let i = 0;i{ if(touchIndex == 'success'){ Game.ins.showSuccess() }else{ Game.ins.showFail() } },3) } normalTouchCheckCallback(targetNode: any) { console.log("targetNodeName+++++++++++++++++++++>" + targetNode.name); switch (targetNode.name) { case '窗户': break; default: break; } } initTouchEvent(node:cc.Node,touchArea:cc.Node,needIndex:number){ var attrs = { recoveparent:node.parent, recoveposi:node.getPosition(),//初始位置 touchArea:touchArea, needIndex:needIndex, }; node.attr(attrs); this.openTouchEvent(node) } // update (dt) {} openTouchEvent(node) { node.on(cc.Node.EventType.TOUCH_START, this.touchStartNode, this) node.on(cc.Node.EventType.TOUCH_MOVE, this.touchMoveNode, this) node.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEndNode, this) node.on(cc.Node.EventType.TOUCH_END, this.touchEndNode, this) } closeTouchEvent(node: cc.Node) { node.off(cc.Node.EventType.TOUCH_START, this.touchStartNode, this) node.off(cc.Node.EventType.TOUCH_MOVE, this.touchMoveNode, this) node.off(cc.Node.EventType.TOUCH_CANCEL, this.touchEndNode, this) node.off(cc.Node.EventType.TOUCH_END, this.touchEndNode, this) } touchStartNode(event) { let target = event.target; let nodeMove = this.node.getChildByName('nodeMove') Common5.setNodeToTargetPos(nodeMove, target) target.parent = this.node target.setPosition(cc.v2(nodeMove.getPosition().x, nodeMove.getPosition().y)) } touchMoveNode(event) { //let target = event.target let nodeLoc = event.getLocation() let nodePos = event.target.parent.convertToNodeSpaceAR(nodeLoc) event.target.setPosition(nodePos) } touchEndNode(event) { let target = event.target if(Common5.checkIntersectsBox(target, target['touchArea']) && this.curIndex == target['needIndex']){ if(this.curIndex == 5){ this.kuBQNode.active = true } let str = this.answersDuihuaConfig[this.curIndex].str let delay = this.answersDuihuaConfig[this.curIndex].delayTime let posiNode = this.zhujueNode.getChildByName('qipaoPosi') // target.active = false this.qipaoNode.active = false this.showQiPaoMy(this.myQipaoNode, str, delay,posiNode, ()=>{ let peoPle = this.renwuNodeArray[this.curIndex] let moveX = 2000 let movey = peoPle.getPosition().y if(peoPle.getPosition().x>0){ moveX = 2000 }else{ moveX = -2000 } cc.tween(peoPle) .to(1, {x:moveX,y:movey}) .call(()=>{ this.unlockLevel(this.curIndex) peoPle.active = false this.curIndex++ if(this.curIndex==8){ this.endGameView('success') }else{ let str = this.duihuaArrayConfig[this.curIndex].str let delay = this.duihuaArrayConfig[this.curIndex].delayTime let posiNode = this.renwuNodeArray[this.curIndex].getChildByName('qipaoPosi') this.showQiPao(this.qipaoNode, str, delay,posiNode) } }) .start() }) } target.parent = target["recoveparent"] this.nodeMoveToRecovery(target, target["recoveposi"]) } nodeMoveToRecovery(node, oldPosi:cc.Vec2, func?:Function){ cc.tween(node) .to(0.1,{x:oldPosi.x, y:oldPosi.y}) .call(()=>{ if(func){ func() } }) .start() } showQiPao(qipaoNode, str, delayTime=3, posiNode, callFunc=null){ //let qipaoNode = this.qipaoNode qipaoNode.scale = 0 Common5.setNodeToTargetPos(qipaoNode, posiNode) qipaoNode.active = true qipaoNode.stopAllActions() qipaoNode.getChildByName("str").getComponent(cc.Label).string = str if (str) { Common5.playEffectCustom("GuoNianHuiJia", "sound/"+str); } cc.tween(qipaoNode) .to(0.2,{scale:1}) .delay(delayTime) .call(()=>{ if(callFunc){ callFunc() } }) .start() } showQiPaoMy(qipaoNode, str, delayTime=3, posiNode, callFunc=null){ //let qipaoNode = this.qipaoNode qipaoNode.scale = 0 Common5.setNodeToTargetPos(qipaoNode, posiNode) qipaoNode.active = true qipaoNode.stopAllActions() qipaoNode.getChildByName("str").getComponent(cc.Label).string = str if (str) { Common5.playEffectCustom("GuoNianHuiJia", "sound/"+str); } cc.tween(qipaoNode) .to(0.2,{scale:1}) .delay(delayTime) .to(0.2,{scale:0}) .call(()=>{ if(callFunc){ callFunc() } }) .start() } // update (dt) {} }