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.
459 lines
15 KiB
459 lines
15 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 { ryw_Event } from "../../../../FrameWork/Event/EventEnum";
|
|
import EventMgr from "../../../../FrameWork/Event/EventMgr";
|
|
import Common5 from "../../../../Platform/th/Common5";
|
|
import GuiYiKuaiDiScript from "./GuiYiKuaiDiScript";
|
|
|
|
const {ccclass, property} = cc._decorator;
|
|
|
|
enum FANGXIANG {
|
|
UP,
|
|
DOWN
|
|
}
|
|
@ccclass
|
|
export default class DianTiScript extends cc.Component {
|
|
|
|
@property(cc.SpriteFrame)
|
|
diantiwaiLiang = null
|
|
@property(cc.SpriteFrame)
|
|
xiaocheLiang = null
|
|
@property(cc.SpriteFrame)
|
|
hongyiLiang = null
|
|
@property(cc.SpriteFrame)
|
|
laotaiLiang = null
|
|
@property(cc.SpriteFrame)
|
|
nvhaiLiang = null
|
|
|
|
@property(cc.SpriteFrame)
|
|
diantiwaiAn = null
|
|
@property(cc.SpriteFrame)
|
|
xiaocheAn = null
|
|
@property(cc.SpriteFrame)
|
|
hongyiAn = null
|
|
@property(cc.SpriteFrame)
|
|
laotaiAn= null
|
|
@property(cc.SpriteFrame)
|
|
nvhaiAn= null
|
|
// onLoad () {}
|
|
@property(cc.Node)
|
|
diantiwaiNode = null
|
|
@property(cc.Node)
|
|
xiaocheNode= null
|
|
@property(cc.Node)
|
|
hongyiNode = null
|
|
@property(cc.Node)
|
|
laotaiNode= null
|
|
@property(cc.Node)
|
|
nvhaiNode= null
|
|
|
|
@property(cc.Node)
|
|
diantiSpine= null
|
|
|
|
@property(cc.Label)
|
|
diantiCengshu= null
|
|
|
|
@property(cc.Label)
|
|
diantiCengshu2= null
|
|
|
|
|
|
@property(cc.Node)
|
|
renwunvhai= null
|
|
|
|
@property(cc.Node)
|
|
renwuhongyi= null
|
|
|
|
@property(cc.Node)
|
|
renwulaotai= null
|
|
@property(cc.Node)
|
|
annniuNode:cc.Node= null
|
|
|
|
@property(cc.Node)
|
|
GuiYiKuaiDiNode = null
|
|
|
|
@property(cc.Node)
|
|
kuaidi206Node = null
|
|
|
|
@property(cc.Node)
|
|
shangbaNode = null
|
|
|
|
@property(cc.Node)
|
|
kuaidi606Node = null
|
|
@property(cc.Node)
|
|
penwuNode = null
|
|
|
|
|
|
|
|
diantiClickIndexArray = []
|
|
curDiantiIndex = 1
|
|
isBlack =true
|
|
_timeout = null
|
|
startUpdate: boolean = false;
|
|
fangxiangIndex = FANGXIANG.UP
|
|
|
|
firstInit4Lou = false
|
|
|
|
start () {
|
|
this.changeAn()
|
|
|
|
EventMgr.onEvent_custom(ryw_Event.NormalTouchMoveCheck,(data)=>{
|
|
this.touchMovecheck(data)
|
|
},this)
|
|
|
|
}
|
|
|
|
touchMovecheck(data){
|
|
console.log('11111111111111')
|
|
if(data.targetNode == this.kuaidi206Node){
|
|
this.scheduleOnce(()=>{
|
|
let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
scrc.setChooseCloseBtn(true)
|
|
scrc.kuaidi206ClickEvent()
|
|
},1.5)
|
|
}else if(data.targetNode == this.kuaidi606Node){
|
|
let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
let isChoose = scrc.getIsChooseTrue()
|
|
if(this.shangbaNode.active == false && this.kuaidi606Node.active == false && this.kuaidi206Node.active == false && isChoose){
|
|
scrc.successUI()
|
|
}else if(this.shangbaNode.active == false && this.kuaidi606Node.active == false){
|
|
//this.nextSelfNodeAnim()
|
|
}
|
|
}else if(data.targetNode == this.penwuNode){
|
|
|
|
let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
let isChoose = scrc.getIsChooseTrue()
|
|
scrc.penwu606ClickEvent()
|
|
if(this.shangbaNode.active == false && this.kuaidi606Node.active == false && this.kuaidi206Node.active == false && isChoose){
|
|
scrc.successUI()
|
|
}else if(this.shangbaNode.active == false && this.kuaidi606Node.active == false){
|
|
//this.nextSelfNodeAnim()
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
diantiClickEvent(event, data){
|
|
if( this.startUpdate){
|
|
return
|
|
}
|
|
let num_ = parseInt(data)
|
|
if(num_ == this.curDiantiIndex){
|
|
return
|
|
}
|
|
this.fangxiangIndex = 0
|
|
let target = event.target
|
|
let btnLiang = target.getChildByName('btnLiang')
|
|
btnLiang.active = true
|
|
|
|
if(this.diantiClickIndexArray.indexOf(num_) < 0){
|
|
this.diantiClickIndexArray.push(num_)
|
|
if (null != this._timeout){
|
|
clearTimeout(this._timeout);
|
|
this._timeout = null;
|
|
}
|
|
|
|
this._timeout = setTimeout(()=>{
|
|
//电梯启动,开始电梯动画
|
|
//重大到小
|
|
if(this.firstInit4Lou == false){
|
|
let have6 = 6
|
|
if(this.diantiClickIndexArray.indexOf(have6) >= 0){
|
|
let num_4 = 4
|
|
this.diantiClickIndexArray.push(num_4)
|
|
}
|
|
|
|
}
|
|
|
|
this.diantiClickIndexArray.sort(function(a,b){
|
|
return b-a
|
|
})
|
|
|
|
this.fangxiangIndex = 0
|
|
if(this.diantiClickIndexArray[0]>this.curDiantiIndex){
|
|
//不变向上
|
|
this.fangxiangIndex = 0
|
|
}else{
|
|
this.fangxiangIndex = 1
|
|
this.diantiClickIndexArray.sort(function(a,b){
|
|
return a-b
|
|
})
|
|
}
|
|
console.log( this.diantiClickIndexArray)
|
|
|
|
this.playDiantiAnim()
|
|
this.startUpdate = true
|
|
}, 2000)
|
|
|
|
}
|
|
}
|
|
|
|
playDiantiAnim(){
|
|
let daodaDianti = this.diantiClickIndexArray.pop()
|
|
if(!daodaDianti){
|
|
this.startUpdate = false
|
|
return
|
|
}
|
|
cc.tween(this.node)
|
|
.delay(1.0)
|
|
.call(()=>{
|
|
|
|
if(daodaDianti>this.curDiantiIndex){
|
|
this.curDiantiIndex++
|
|
}else{
|
|
this.curDiantiIndex--
|
|
}
|
|
console.log(this.curDiantiIndex)
|
|
this.diantiCengshu.string = this.curDiantiIndex+''
|
|
this.diantiCengshu2.string = this.curDiantiIndex+''
|
|
if(this.curDiantiIndex == daodaDianti){
|
|
Common5.playEffectCustom('guiyiKuaidi', "sound/电梯到了");
|
|
|
|
this.node.stopAllActions()
|
|
let target = this.annniuNode.children[this.curDiantiIndex-1]
|
|
let btnLiang = target.getChildByName('btnLiang')
|
|
btnLiang.active = false
|
|
this.diantiSpine.getComponent(sp.Skeleton).setAnimation(0,'kai', false)
|
|
|
|
if(daodaDianti == 2){
|
|
//选项
|
|
if(this.isBlack == false){
|
|
//失败
|
|
this.renwulaotai.active = true
|
|
this.scheduleOnce(()=>{
|
|
|
|
this.laotaiHideFailGame()
|
|
},1.5)
|
|
}else{
|
|
|
|
// let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
// scrc.kuaidi602Event()
|
|
|
|
this.renwunvhai.active = false
|
|
this.renwunvhai.getChildByName('shangba').active = false
|
|
this.renwuhongyi.active = false
|
|
this.renwulaotai.active = true
|
|
}
|
|
|
|
|
|
}else if(daodaDianti == 6){
|
|
|
|
if(this.isBlack == false){
|
|
|
|
}else{
|
|
this.scheduleOnce(()=>{
|
|
let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
scrc.nvhaiFail()
|
|
},1.5)
|
|
}
|
|
|
|
// let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
// scrc.kuaidi606Event()
|
|
|
|
this.renwunvhai.active = true
|
|
this.renwunvhai.getChildByName('shangba').active = true
|
|
this.renwuhongyi.active = false
|
|
this.renwulaotai.active = false
|
|
}else{
|
|
this.firstInit4Lou = true
|
|
|
|
this.renwunvhai.active = false
|
|
this.renwunvhai.getChildByName('shangba').active = false
|
|
this.renwuhongyi.active = true
|
|
this.renwulaotai.active = false
|
|
|
|
//亮灯
|
|
if(this.isBlack == false){
|
|
this.scheduleOnce(()=>{
|
|
this.hongyinvXiaoshi()
|
|
},1.5)
|
|
|
|
}else{
|
|
this.scheduleOnce(()=>{
|
|
let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
scrc.setChooseCloseBtn(false)
|
|
scrc.hongyiClickEvent()
|
|
},1.5)
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
})
|
|
.union()
|
|
.repeatForever()
|
|
.start()
|
|
}
|
|
|
|
changeLiang(){
|
|
this.node.getChildByName('灯光').active = true
|
|
|
|
this.diantiSpine.getComponent(sp.Skeleton).setSkin('liang')
|
|
this.diantiwaiNode.getComponent(cc.Sprite).spriteFrame = this.diantiwaiLiang
|
|
this.xiaocheNode.getComponent(cc.Sprite).spriteFrame = this.xiaocheLiang
|
|
this.hongyiNode.getComponent(cc.Sprite).spriteFrame = this.hongyiLiang
|
|
this.laotaiNode.getComponent(cc.Sprite).spriteFrame = this.laotaiLiang
|
|
this.nvhaiNode.getComponent(cc.Sprite).spriteFrame = this.nvhaiLiang
|
|
if(this.renwuhongyi.active && this.curDiantiIndex == 4){
|
|
// 红衣女尖叫消失,关门,next
|
|
this.hongyinvXiaoshi()
|
|
}
|
|
if(this.renwulaotai.active&& this.curDiantiIndex == 2){
|
|
let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
scrc.laotaiFail2()
|
|
//失败
|
|
}
|
|
}
|
|
|
|
|
|
changeAn(){
|
|
this.node.getChildByName('灯光').active = false
|
|
this.diantiSpine.getComponent(sp.Skeleton).setSkin('an')
|
|
this.diantiwaiNode.getComponent(cc.Sprite).spriteFrame = this.diantiwaiAn
|
|
this.xiaocheNode.getComponent(cc.Sprite).spriteFrame = this.xiaocheAn
|
|
this.hongyiNode.getComponent(cc.Sprite).spriteFrame = this.hongyiAn
|
|
this.laotaiNode.getComponent(cc.Sprite).spriteFrame = this.laotaiAn
|
|
this.nvhaiNode.getComponent(cc.Sprite).spriteFrame = this.nvhaiAn
|
|
if(this.renwunvhai.active&& this.curDiantiIndex == 6){
|
|
let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
scrc.nvhaiFail()
|
|
//失败
|
|
}
|
|
}
|
|
|
|
kaidengClickEvent(){
|
|
Common5.playEffect("点击音效");
|
|
if(this.isBlack){
|
|
this.isBlack = false
|
|
this.changeLiang()
|
|
}else{
|
|
this.isBlack = true
|
|
this.changeAn()
|
|
}
|
|
}
|
|
|
|
|
|
nextSelfNodeAnim(){
|
|
|
|
console.log('nextSelfNodeAnim')
|
|
this.diantiSpine.getComponent(sp.Skeleton).setAnimation(0,'guan', false)
|
|
|
|
let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
let isChoose = scrc.getIsChooseTrue()
|
|
if(this.penwuNode.active == false && this.kuaidi606Node.active == false && this.kuaidi206Node.active == false && isChoose){
|
|
scrc.successUI()
|
|
}
|
|
|
|
|
|
if(this.diantiClickIndexArray.length ==0){
|
|
this.startUpdate = false
|
|
return
|
|
}
|
|
|
|
this.scheduleOnce(()=>{
|
|
this.playDiantiAnim()
|
|
},1.5)
|
|
|
|
}
|
|
|
|
hongyinvXiaoshi(){
|
|
Common5.playEffect("女生惨叫");
|
|
let renwuhongyi = this.node.getChildByName('renwuhongyi')
|
|
cc.tween(renwuhongyi)
|
|
.to(1,{opacity:0})
|
|
.call(()=>{
|
|
let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
scrc.setChooseLayerHide()
|
|
this.nextSelfNodeAnim()
|
|
})
|
|
.start()
|
|
}
|
|
|
|
|
|
diantiAninFail(callFunc1,callFunc2){
|
|
let renwuhongyi = this.node.getChildByName('renwuhongyi')
|
|
let renwuhongyi2 = this.node.getChildByName('renwuhongyi2')
|
|
renwuhongyi2.active = true
|
|
cc.tween(renwuhongyi)
|
|
.to(1,{opacity:0})
|
|
.call(()=>{
|
|
cc.tween(renwuhongyi2)
|
|
.to(1,{opacity:255})
|
|
.call(()=>{
|
|
|
|
this.diantiSpine.getComponent(sp.Skeleton).setAnimation(0,'guan', false)
|
|
|
|
this.scheduleOnce(()=>{
|
|
if(callFunc1){
|
|
callFunc1()
|
|
}
|
|
let curIndex = this.curDiantiIndex*3
|
|
cc.tween(this.GuiYiKuaiDiNode)
|
|
.to(0.1, {angle:-5})
|
|
.to(0.1, {angle:5})
|
|
.call(()=>{
|
|
this.curDiantiIndex--
|
|
this.diantiCengshu.string = this.curDiantiIndex+''
|
|
this.diantiCengshu2.string = this.curDiantiIndex+''
|
|
})
|
|
.union()
|
|
.repeat(curIndex)
|
|
.call(()=>{
|
|
this.GuiYiKuaiDiNode.angle = 0
|
|
|
|
})
|
|
.delay(1.0)
|
|
.call(()=>{
|
|
this.GuiYiKuaiDiNode.angle = 0
|
|
if(callFunc2){
|
|
callFunc2()
|
|
}
|
|
})
|
|
.start()
|
|
|
|
|
|
|
|
},1.5)
|
|
})
|
|
.start()
|
|
})
|
|
.start()
|
|
}
|
|
|
|
closeDianti606ClickEvent(){
|
|
Common5.playEffect("点击音效");
|
|
if(this.renwunvhai.active){
|
|
if(this.shangbaNode.active == false && this.kuaidi206Node.active == false){
|
|
this.nextSelfNodeAnim()
|
|
}else{
|
|
this.nextSelfNodeAnim()
|
|
//shibai
|
|
this.scheduleOnce(()=>{
|
|
let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
scrc.nvhaiFail()
|
|
},1.5)
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
laotaiHideFailGame(){
|
|
Common5.playEffect("女生惨叫");
|
|
cc.tween(this.renwulaotai)
|
|
.to(1.5, {opacity:0})
|
|
.call(
|
|
()=>{
|
|
let scrc:GuiYiKuaiDiScript = this.GuiYiKuaiDiNode.getComponent('GuiYiKuaiDiScript')
|
|
scrc.laoTaiFail()
|
|
}
|
|
)
|
|
.start()
|
|
}
|
|
// update (dt) {}
|
|
}
|
|
|