You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
594 lines
18 KiB
594 lines
18 KiB
// 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/WenZiRes/ui/Game";
|
|
import ChooseBtnLayer from "../../../WordGame/gameComScript/ChooseBtnLayer";
|
|
import DuiHuaScript from "../../../WordGame/guizeGame/comScript/DuiHuaScript";
|
|
import GZTipBtnScript from "../../../WordGame/guizeGame/comScript/GZTipBtnScript";
|
|
import GuiZeLayer from "../../../WordGame/guizeGame/comScript/GuiZeLayer";
|
|
import DianTiScript from "./DianTiScript";
|
|
|
|
const { ccclass, property } = cc._decorator;
|
|
|
|
@ccclass
|
|
export default class GuiYiKuaiDiScript extends WordGameBaseComponent {
|
|
|
|
@property(cc.Node)
|
|
layerArray: cc.Node[] = []
|
|
|
|
@property(cc.Node)
|
|
resultLayer: cc.Node[] = []
|
|
|
|
@property(cc.Node)
|
|
GuiZeLayer: cc.Node = null
|
|
|
|
@property(cc.Node)
|
|
ChooseLayer: cc.Node = null
|
|
|
|
@property(cc.Node)
|
|
DuiHuaPrefab: cc.Node = null
|
|
|
|
@property(cc.Node)
|
|
GZTipBtn: cc.Node = null
|
|
|
|
@property(cc.Node)
|
|
ChooseLayer2: cc.Node = null
|
|
|
|
// LIFE-CYCLE CALLBACKS:
|
|
|
|
// onLoad () {}
|
|
|
|
curVdTipIndex = 0 //当前提示界面的索引0,1,2,3,4,5,6,
|
|
duihuaConfig = null
|
|
resultDuihuaArray = null
|
|
titleArrayConfig = null
|
|
curLayerIndex = 0
|
|
stepIndex = 0 //对话有用
|
|
curTime = 0
|
|
|
|
timeAngle = 30
|
|
kuaidiDesc: string;
|
|
IsChoose = false;
|
|
isQiaomen = false;
|
|
bundleName = null
|
|
|
|
onLoad(): void {
|
|
|
|
}
|
|
|
|
start() {
|
|
super.start();
|
|
DaDianScript.userEnterDaDian()
|
|
Common5.playMusicCustom('guiyiKuaidi','sound/背景音')
|
|
|
|
Common5.getJsonFromBundle(Common5.selectGameInfo.bundle,'script/GuiYiKuaiDiConfig',(assest)=>{
|
|
//this.jsonData = JSON.stringify(assest.json)
|
|
|
|
this.jsonData =assest.json
|
|
|
|
Common.Type = 0;
|
|
Common.subLevel = this.curLayerIndex
|
|
Common.GameSubTipConfigs = this.jsonData.tipsArray //GuiYiKuaiDiConfig.getInstance().getGameConfig('tipsArray')
|
|
Common.GameSubAnswerConfigs = this.jsonData.answersArray//GuiYiKuaiDiConfig.getInstance().getGameConfig('answersArray');
|
|
|
|
|
|
|
|
Common.GameSubChooseArray = this.jsonData.chooseArray//GuiYiKuaiDiConfig.getInstance().getGameConfig('chooseArray')
|
|
Common.GameguizeArray = this.jsonData.GameguizeArray//GuiYiKuaiDiConfig.getInstance().getGameConfig('GameguizeArray')
|
|
|
|
this.titleArrayConfig = this.jsonData.titleArray//GuiYiKuaiDiConfig.getInstance().getGameConfig('titleArray')
|
|
this.duihuaConfig = this.jsonData.duihuaArray//GuiYiKuaiDiConfig.getInstance().getGameConfig('duihuaArray')
|
|
this.resultDuihuaArray = this.jsonData.resultDuihuaArray//GuiYiKuaiDiConfig.getInstance().getGameConfig('resultDuihuaArray')
|
|
this.bundleName = this.jsonData.bundleName//GuiYiKuaiDiConfig.getInstance().getGameConfig('bundleName')
|
|
|
|
this.refreshTipBtn()
|
|
this.refreshTitle()
|
|
this.showDuihua(this.stepIndex)
|
|
this.setpIndexAdd()
|
|
})
|
|
|
|
|
|
EventMgr.onEvent_custom(ryw_Event.GuiZeGameBtnClick, (data) => {
|
|
let touchIndex = data.touchIndex
|
|
if (this.curLayerIndex == 0) {
|
|
this.changeCurTipIndex(1)
|
|
} else if (this.curLayerIndex == 1) {
|
|
this.changeCurTipIndex(3)
|
|
} else if (this.curLayerIndex == 2) {
|
|
this.changeCurTipIndex(5)
|
|
}
|
|
this.gameStep(touchIndex)
|
|
}, this)
|
|
|
|
EventMgr.onEvent_custom(ryw_Event.openGuizeLayerEvent, (data) => {
|
|
this.guizeBtnLayer()
|
|
}, this)
|
|
|
|
EventMgr.onEvent_custom(ryw_Event.chooseResult, (data_) => {
|
|
this.chooseResult(data_.touchIndex)
|
|
|
|
}, this)
|
|
|
|
EventMgr.onEvent_custom(ryw_Event.NormalTouchEndCheck, (data_) => {
|
|
this.showLaotpuNode(data_.targetNode)
|
|
|
|
}, this)
|
|
|
|
EventMgr.onEvent_custom(ryw_Event.NormalTouchMoveCheck, (data_) => {
|
|
this.showLaotpuNode(data_.targetNode)
|
|
|
|
}, this)
|
|
|
|
}
|
|
|
|
showLaotpuNode(targetNode) {
|
|
let node = this.layerArray[this.curLayerIndex]
|
|
console.log('dadengButton11')
|
|
|
|
if (node.getChildByName('tuicheButton')) {
|
|
if (targetNode == node.getChildByName('tuicheButton')) {
|
|
node.getChildByName('小人').active = true
|
|
this.showDuihua(this.stepIndex)
|
|
this.setpIndexAdd()
|
|
} else if (targetNode == node.getChildByName('dadengButton')) {
|
|
console.log('dadengButton')
|
|
let heiying = node.getChildByName('heiying')
|
|
heiying.active = true
|
|
cc.tween(heiying)
|
|
.to(2.0, { opacity: 0 })
|
|
.start()
|
|
}
|
|
} else if (node.getChildByName('qiaomen')) {
|
|
|
|
if (targetNode == node.getChildByName('qiaomen')) {
|
|
this.isQiaomen = true
|
|
let stepIndex = 11
|
|
this.showDuihua(stepIndex)
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
gameStep(touchIndex) {
|
|
console.log(touchIndex, 'gameStep+11++++++++++++======')
|
|
console.log(this.stepIndex, ' this.stepIndex+11++++++++++++======')
|
|
|
|
if (touchIndex == this.stepIndex) {
|
|
console.log(touchIndex, 'gameStep+22++++++++++++======')
|
|
if (this.stepIndex == 1) { //规则一
|
|
this.showGuizeLayer()
|
|
this.showDuihua(this.stepIndex)
|
|
this.setpIndexAdd()
|
|
} else if (this.stepIndex == 2) { // 进入第二层
|
|
|
|
this.showDuihua(this.stepIndex)
|
|
this.setpIndexAdd()
|
|
} else if (this.stepIndex == 3) {
|
|
// this.showGuizeLayer()
|
|
// this.showDuihua(this.stepIndex)
|
|
// this.setpIndexAdd()
|
|
} else if (this.stepIndex == 4) {//规则2
|
|
this.showGuizeLayer()
|
|
|
|
} else if (this.stepIndex == 6) {//规则3
|
|
this.showGuizeLayer()
|
|
// this.showDuihua(this.stepIndex)
|
|
// this.setpIndexAdd()
|
|
}
|
|
}
|
|
}
|
|
|
|
changeLayer() {
|
|
|
|
}
|
|
|
|
refreshTitle() {
|
|
|
|
let title = this.titleArrayConfig[this.curLayerIndex]
|
|
let titleLab = this.node.getChildByName('标题').getChildByName('lab').getComponent(cc.Label)
|
|
if (titleLab.string) {
|
|
titleLab.string = title
|
|
}
|
|
Game.ins.setGameTitle(title)
|
|
}
|
|
|
|
refreshTipBtn() {
|
|
// let tipScr: GZTipBtnScript = this.GZTipBtn.getComponent('GZTipBtnScript')
|
|
// tipScr.refreshTipsCurView()
|
|
|
|
// let title = this.titleArrayConfig[this.curLayerIndex]
|
|
// let titleLab = this.node.getChildByName('标题').getChildByName('lab').getComponent(cc.Label)
|
|
// if (titleLab.string) {
|
|
// titleLab.string = title
|
|
// }
|
|
|
|
}
|
|
|
|
showGuizeLayer() {
|
|
this.GuiZeLayer.active = true
|
|
let script_: GuiZeLayer = this.GuiZeLayer.getComponent('GuiZeLayer')
|
|
script_.setGuizeArray(this.curLayerIndex)
|
|
}
|
|
|
|
guizeBtnLayer() {
|
|
this.GuiZeLayer.active = true
|
|
let script_: GuiZeLayer = this.GuiZeLayer.getComponent('GuiZeLayer')
|
|
script_.refreshView()
|
|
}
|
|
|
|
showDuihua(stepIndex, func?: Function) {
|
|
this.DuiHuaPrefab.active = true
|
|
let script_: DuiHuaScript = this.DuiHuaPrefab.getComponent('DuiHuaScript')
|
|
let duihuaArray = this.duihuaConfig[stepIndex]
|
|
script_.setDuihuaArray(this.bundleName,duihuaArray, func)
|
|
|
|
}
|
|
|
|
showChooseDuihua(duihuaArray, func?: Function) {
|
|
this.DuiHuaPrefab.active = true
|
|
let script_: DuiHuaScript = this.DuiHuaPrefab.getComponent('DuiHuaScript')
|
|
script_.setDuihuaArray(this.bundleName,duihuaArray, func)
|
|
|
|
}
|
|
|
|
|
|
showDuihuaResult(duihuaIndex, func?: Function) {
|
|
this.DuiHuaPrefab.active = true
|
|
let script_: DuiHuaScript = this.DuiHuaPrefab.getComponent('DuiHuaScript')
|
|
let duihuaArray = this.resultDuihuaArray[duihuaIndex]
|
|
console.log(duihuaArray, 'duihuaArray+++++++++++==')
|
|
script_.setDuihuaArray(this.bundleName,duihuaArray, func)
|
|
}
|
|
|
|
|
|
|
|
setpIndexAdd() {
|
|
this.stepIndex++
|
|
console.log(this.stepIndex, 'setpIndexAdd setpIndexAdd+++++++++++===')
|
|
}
|
|
|
|
// update (dt) {}
|
|
gameEnd() {
|
|
console.log('game end+++++++++++===')
|
|
}
|
|
|
|
|
|
qidongClickEvent(event, data_) {
|
|
Common5.playEffect("点击音效");
|
|
console.log(data_, 'data_')
|
|
//快递, 变颜色
|
|
let target = event.target
|
|
target.active = false
|
|
this.showDuihua(this.stepIndex, () => {
|
|
let node = this.layerArray[this.curLayerIndex]
|
|
let kuaidi1 = node.getChildByName('kuaidi1')
|
|
let kuaidi2 = node.getChildByName('kuaidi2')
|
|
let kuaidi3 = node.getChildByName('kuaidi3')
|
|
let kuaidi4 = node.getChildByName('kuaidi4')
|
|
|
|
let blackMotuo = node.getChildByName('摩托车2')
|
|
if (blackMotuo.active && (kuaidi1.active == false && kuaidi2.active == false && kuaidi3.active && kuaidi4.active) && this.timeAngle % 360 >= -150 && this.timeAngle % 360 <= 0 && this.isQiaomen) {
|
|
console.log('进入下一层')
|
|
|
|
this.refreCurLayerView()
|
|
|
|
|
|
} else {
|
|
console.log('不能进入下一层失败')
|
|
this.failShow(this.curLayerIndex)
|
|
}
|
|
})
|
|
this.setpIndexAdd()
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
failShow(curLayerIndex, isshowDuihua = true, callFunc?: Function) {
|
|
|
|
this.scheduleOnce(() => {
|
|
|
|
}, 0.1)
|
|
|
|
Common5.playEffect("人物跳脸");
|
|
let node = this.resultLayer[curLayerIndex]
|
|
let renwuNode = node.getChildByName('renwuNode')
|
|
renwuNode.scale = 0.01
|
|
let zhuahengBg = node.getChildByName('zhuahengBg')
|
|
node.active = true
|
|
cc.tween(renwuNode)
|
|
.to(0.3, { scale: 1 }, { easing: 'elasticOut' })
|
|
.delay(1.0)
|
|
.call(() => {
|
|
|
|
if (zhuahengBg) {
|
|
|
|
Common5.playEffect("跳脸抓痕");
|
|
zhuahengBg.active = true
|
|
let zhuhen = zhuahengBg.getChildByName('抓痕')
|
|
zhuhen.getComponent(sp.Skeleton).setAnimation(0, 'animation', false)
|
|
}
|
|
if (isshowDuihua) {
|
|
this.showDuihuaResult(curLayerIndex)
|
|
}
|
|
if (callFunc) {
|
|
callFunc()
|
|
}
|
|
this.scheduleOnce(() => {
|
|
Game.ins.showFail();
|
|
}, 2)
|
|
})
|
|
.start()
|
|
|
|
}
|
|
refreCurLayerView() {
|
|
|
|
let node = this.layerArray[this.curLayerIndex]
|
|
cc.tween(node)
|
|
.to(3.0, { opacity: 0 })
|
|
|
|
.delay(1.0)
|
|
.call(() => {
|
|
this.curLayerIndex++
|
|
if(this.curLayerIndex<=Common.GameSubAnswerConfigs.length-1){
|
|
Common.subLevel = this.curLayerIndex
|
|
Game.ins.updateTishiBtn()
|
|
}
|
|
let curVdTipIndex = this.curLayerIndex * 2
|
|
this.changeCurTipIndex(curVdTipIndex)
|
|
let node_1 = this.layerArray[this.curLayerIndex]
|
|
node_1.active = true
|
|
this.showDuihua(this.stepIndex)
|
|
this.setpIndexAdd()
|
|
this.refreshTitle()
|
|
node.active = false
|
|
})
|
|
.start()
|
|
}
|
|
//调整时间
|
|
|
|
enterDoorClickEvent() {
|
|
Common5.playEffect("点击音效");
|
|
let ChooseLayer = this.node.getChildByName('GZChooseLayer2')
|
|
ChooseLayer.active = true
|
|
|
|
Common.GameSubChooseArray = this.jsonData.chooseArray//GuiYiKuaiDiConfig.getInstance().getGameConfig('chooseArray')
|
|
|
|
let script_: ChooseBtnLayer = ChooseLayer.getComponent('ChooseBtnLayer')
|
|
script_.setChooseBtnView()
|
|
}
|
|
|
|
|
|
|
|
|
|
kuaidi206ClickEvent() {
|
|
|
|
this.kuaidiDesc = 'kuaidi206'
|
|
let stepIndex = 6
|
|
this.showDuihua(
|
|
stepIndex,
|
|
|
|
() => {
|
|
let ChooseLayer = this.node.getChildByName('ChooseLayer')
|
|
ChooseLayer.active = true
|
|
this.setChooseCloseBtn(true)
|
|
|
|
Common.GameSubChooseArray = this.jsonData.chooseArray1//GuiYiKuaiDiConfig.getInstance().getGameConfig('chooseArray1')
|
|
|
|
let script_: ChooseBtnLayer = ChooseLayer.getComponent('ChooseBtnLayer')
|
|
script_.setChooseBtnView()
|
|
}
|
|
)
|
|
this.setpIndexAdd()
|
|
|
|
|
|
|
|
}
|
|
|
|
kuaidi602Event() {
|
|
let stepIndex = 9
|
|
this.showDuihua(
|
|
stepIndex,
|
|
)
|
|
}
|
|
kuaidi606Event() {
|
|
let stepIndex = 10
|
|
this.showDuihua(
|
|
stepIndex,
|
|
)
|
|
}
|
|
|
|
penwu606ClickEvent() {
|
|
let stepIndex = 7
|
|
this.showDuihua(
|
|
stepIndex,
|
|
)
|
|
this.setpIndexAdd()
|
|
}
|
|
|
|
hongyiClickEvent() {
|
|
this.kuaidiDesc = 'hongyi'
|
|
let stepIndex = 8
|
|
this.showDuihua(
|
|
stepIndex,
|
|
|
|
() => {
|
|
let ChooseLayer = this.node.getChildByName('GZChooseLayer2')
|
|
ChooseLayer.active = true
|
|
//this.setChooseCloseBtn(false)
|
|
Common.GameSubChooseArray = this.jsonData.chooseArray2//GuiYiKuaiDiConfig.getInstance().getGameConfig('chooseArray2')
|
|
|
|
let script_: ChooseBtnLayer = ChooseLayer.getComponent('ChooseBtnLayer')
|
|
script_.setChooseBtnView()
|
|
}
|
|
)
|
|
this.setpIndexAdd()
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
chooseResult(touchIndex) {
|
|
|
|
|
|
if (Common.GameSubChooseArray.btnEffectArray) {
|
|
let duihuaArray = Common.GameSubChooseArray.btnEffectArray[touchIndex]
|
|
if (duihuaArray) {
|
|
console.log(duihuaArray, 'duihuaArray+++===')
|
|
this.showChooseDuihua(duihuaArray)
|
|
}
|
|
|
|
}
|
|
|
|
if (this.curLayerIndex == 1) {
|
|
let node = this.layerArray[this.curLayerIndex]
|
|
let tuiche = node.getChildByName('tuiche')
|
|
let dadeng = node.getChildByName('dadeng')
|
|
|
|
let ChooseLayer = this.node.getChildByName('ChooseLayer')
|
|
ChooseLayer.active = false
|
|
|
|
|
|
if (touchIndex == 0) {
|
|
|
|
|
|
if (tuiche.active && dadeng.active) {
|
|
console.log('能进入下一层')
|
|
this.refreCurLayerView()
|
|
} else {
|
|
console.log('第二次失败')
|
|
this.failShow(this.curLayerIndex)
|
|
}
|
|
} else {
|
|
console.log('第二次失败')
|
|
this.failShow(this.curLayerIndex)
|
|
|
|
}
|
|
} else if (this.curLayerIndex == 2) {
|
|
let ChooseLayer = this.node.getChildByName('ChooseLayer')
|
|
ChooseLayer.active = false
|
|
if (this.kuaidiDesc == 'hongyi') {
|
|
//失败
|
|
//电梯抖动失败
|
|
if (touchIndex == 0) {
|
|
//进来
|
|
let node = this.layerArray[this.curLayerIndex]
|
|
let scrnode: DianTiScript = node.getComponent('DianTiScript')
|
|
scrnode.diantiAninFail(() => {
|
|
let curLayerIndex = 3
|
|
this.showDuihuaResult(curLayerIndex)
|
|
}, () => {
|
|
//失败
|
|
let index = 3
|
|
this.failShow(index, false)
|
|
})
|
|
} else {
|
|
//拒接
|
|
let index = 3
|
|
this.failShow(index, false)
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
if (touchIndex == -1) {
|
|
this.IsChoose = true
|
|
let node = this.layerArray[this.curLayerIndex]
|
|
let scrnode: DianTiScript = node.getComponent('DianTiScript')
|
|
scrnode.nextSelfNodeAnim()
|
|
} else {
|
|
//失败
|
|
let index = 2
|
|
this.failShow(index)
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
getIsChooseTrue() {
|
|
return this.IsChoose
|
|
}
|
|
|
|
|
|
successUI() {
|
|
this.scheduleOnce(() => {
|
|
Game.ins.showSuccess();;
|
|
}, 2.0)
|
|
}
|
|
|
|
laotaiFail2() {
|
|
let index = 6
|
|
this.failShow(index)
|
|
}
|
|
|
|
nvhaiFail() {
|
|
let index = 4
|
|
this.failShow(index)
|
|
}
|
|
|
|
closeSelfClickEvent(event) {
|
|
Common5.playEffect("点击音效");
|
|
let target = event.target
|
|
target.active = false
|
|
}
|
|
|
|
addTimeClickEvent(event) {
|
|
Common5.playEffect("点击音效");
|
|
let target = event.target
|
|
let shizhen = target.getChildByName('时针') //时针
|
|
this.timeAngle -= 30
|
|
console.log(this.timeAngle, 'this.timeAngle++++++++++++====')
|
|
shizhen.angle = this.timeAngle
|
|
|
|
|
|
console.log(this.timeAngle % 360, 'this.timeAngle%360++++++++++++====')
|
|
|
|
let node = this.layerArray[this.curLayerIndex]
|
|
let xiaoshishen = node.getChildByName('timeNode').getChildByName('表盘').getChildByName('时针')
|
|
xiaoshishen.angle = this.timeAngle
|
|
}
|
|
|
|
|
|
setChooseCloseBtn(show) {
|
|
let ChooseLayer = this.node.getChildByName('ChooseLayer')
|
|
let script_: ChooseBtnLayer = ChooseLayer.getComponent('ChooseBtnLayer')
|
|
script_.setCloseBtnShow(show)
|
|
}
|
|
|
|
setChooseLayerHide() {
|
|
let ChooseLayer = this.node.getChildByName('ChooseLayer')
|
|
ChooseLayer.active = false
|
|
|
|
let ChooseLayer2 = this.node.getChildByName('GZChooseLayer2')
|
|
ChooseLayer2.active = false
|
|
}
|
|
|
|
laoTaiFail() {
|
|
let index = 5
|
|
this.failShow(index, true, () => {
|
|
let script_: DuiHuaScript = this.DuiHuaPrefab.getComponent('DuiHuaScript')
|
|
script_.setDuihuaPosiChange()
|
|
})
|
|
//对话位置偏移
|
|
}
|
|
|
|
changeCurTipIndex(curVdTipIndex) {
|
|
this.curVdTipIndex = curVdTipIndex
|
|
//Common.subLevel = this.curVdTipIndex
|
|
this.refreshTipBtn()
|
|
}
|
|
}
|
|
|