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.
358 lines
13 KiB
358 lines
13 KiB
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 WordGameBaseComponent from "../../../FrameWork/Base/WordGameBaseComptent";
|
|
import DaDianScript from "../../../FrameWork/Base/DaDianScript";
|
|
import Game from "../../../Scripts/Game";
|
|
import BuYaoLangFeiConfig from "./BuYaoLangFeiConfig";
|
|
|
|
const { ccclass, property } = cc._decorator;
|
|
@ccclass
|
|
export default class BuYaoLangFei extends WordGameBaseComponent {
|
|
@property(cc.Node)
|
|
maskNode:cc.Node = null
|
|
@property(cc.Node)
|
|
xiaoHai:cc.Node = null
|
|
@property(cc.Node)
|
|
shuTouchArea:cc.Node = null
|
|
@property(cc.Node)
|
|
xiaoHaiShuNode:cc.Node = null
|
|
@property(cc.Node)
|
|
juZi:cc.Node = null
|
|
@property(cc.Node)
|
|
maTong:cc.Node = null
|
|
@property(cc.Node)
|
|
xiaoHaiMaTongNode:cc.Node = null
|
|
@property(cc.Node)
|
|
maTongGai:cc.Node = null
|
|
@property(cc.Node)
|
|
xiaoPang:cc.Node = null
|
|
@property(cc.Node)
|
|
xiaoPangZuoXia:cc.Node = null
|
|
@property(cc.Node)
|
|
shaFa:cc.Node = null
|
|
@property(cc.Node)
|
|
jiaoPen:cc.Node = null
|
|
@property(cc.Node)
|
|
zhuSpine:cc.Node = null
|
|
|
|
@property(cc.Node)
|
|
shouJiTouchArea:cc.Node = null
|
|
@property(cc.Node)
|
|
shouJiNode:cc.Node = null
|
|
//文本配置
|
|
titleArrayConfig: string[] = [];
|
|
duihuaArrayConfig: any[] = [];
|
|
// duihuaArray_Ying: any[] = [];
|
|
// duihuaArray_PingJu: any[] = [];
|
|
// duihuaArray_Shu: any[] = [];
|
|
|
|
//初始化节点
|
|
|
|
curFinishNum:number = 0
|
|
curZIndex:number = 100;
|
|
isXiaoHaiLaShi:boolean = false
|
|
isXiTuoBu:boolean = false
|
|
isXiJiaoPenYouShui:boolean = true
|
|
isShouJiFinish:boolean = false
|
|
bundle = null
|
|
start() {
|
|
this.bundle = Common5.gameConfig.zmGameConfig[Common5.selectGameNum].bundle
|
|
// Common5.playMusicCustom('WordGame','baoxiaoGame/fuqiyouxi/sound/背景' );
|
|
super.start();
|
|
DaDianScript.userEnterDaDian();
|
|
|
|
this.initParameters();
|
|
this.initComponent();
|
|
this.initView()
|
|
}
|
|
|
|
//初始化参数
|
|
initParameters() {
|
|
EventMgr.onEvent_custom(ryw_Event.timeOut, (tab) => {
|
|
this.endGameView(0);
|
|
}, this);
|
|
// this.fireNodeInfoArray = [];
|
|
|
|
this.titleArrayConfig = BuYaoLangFeiConfig.getInstance().getGameConfig('titleArray') as string[];
|
|
this.duihuaArrayConfig = BuYaoLangFeiConfig.getInstance().getGameConfig('duihuaArray') as any[];
|
|
// this.duihuaArray_Ying = BuYaoLangFeiConfig.getInstance().getGameConfig('duihuaArray_Ying') as any[];
|
|
// this.duihuaArray_PingJu = BuYaoLangFeiConfig.getInstance().getGameConfig('duihuaArray_PingJu') as any[];
|
|
// this.duihuaArray_Shu = BuYaoLangFeiConfig.getInstance().getGameConfig('duihuaArray_Shu') as any[];
|
|
|
|
Common.Type = 0;
|
|
Common.subLevel = 0;
|
|
Common.GameSubTipConfigs = BuYaoLangFeiConfig.getInstance().getGameConfig('tipsArray');
|
|
Common.GameSubAnswerConfigs = BuYaoLangFeiConfig.getInstance().getGameConfig('answersArray');
|
|
|
|
EventMgr.onEvent_custom(ryw_Event.NormalTouchMoveCheck, (data_) => {
|
|
this.normalTouchCheckCallback(data_.targetNode);
|
|
}, this);
|
|
|
|
}
|
|
initView(){
|
|
//初始对话
|
|
cc.tween(this.node)
|
|
.delay(1)
|
|
.call(()=>{
|
|
this.showQiPao(this.duihuaArrayConfig[0])
|
|
})
|
|
.delay(5)
|
|
.call(()=>{
|
|
this.showQiPao(this.duihuaArrayConfig[1])
|
|
})
|
|
.delay(2)
|
|
.call(()=>{
|
|
this.maskNode.active = false
|
|
this.initTouchEvent(this.xiaoHai,this.shuTouchArea,this.maTong)
|
|
this.initTouchEvent(this.maTongGai,this.xiaoHai)
|
|
this.initTouchEvent(this.jiaoPen,this.maTong)
|
|
this.initTouchEvent(this.shouJiTouchArea,null)
|
|
})
|
|
.start()
|
|
}
|
|
initTouchEvent(node, checkNode1, checkNode2?) {
|
|
var attrs = {
|
|
checkNode1: checkNode1,
|
|
checkNode2: checkNode2,
|
|
recoveposi: node.getPosition(),//初始位置
|
|
recoveparent: node.parent,
|
|
scr: this //脚本
|
|
};
|
|
node.attr(attrs);
|
|
this.openTouchEvent(node)
|
|
}
|
|
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 posi = event.getLocation()//世界坐标
|
|
posi = target.parent.convertToNodeSpaceAR(posi)
|
|
target.setPosition(posi)
|
|
|
|
Common5.playEffect("点击音效");
|
|
// EventMgr.emitEvent_custom(ryw_Event.openBGMove, { open: false });
|
|
if(event.target == this.shouJiTouchArea && !this.isShouJiFinish){
|
|
this.shouJiNode.active = true
|
|
}
|
|
}
|
|
touchMoveNode(event) {
|
|
if(event.target == this.shouJiTouchArea){
|
|
return
|
|
}
|
|
let posi = event.getLocation()//世界坐标
|
|
let target = event.target
|
|
posi = target.parent.convertToNodeSpaceAR(posi)
|
|
target.setPosition(posi)
|
|
|
|
}
|
|
|
|
touchEndNode(event) {
|
|
if(event.target == this.shouJiTouchArea){
|
|
return
|
|
}
|
|
let target = event.target;
|
|
let checkNode1 = target.checkNode1;
|
|
let checkNode2 = target.checkNode2;
|
|
if (Common5.checkIntersectsBox(target, checkNode1)) {
|
|
//橘子树拉屎
|
|
if(checkNode1 == this.shuTouchArea && !this.isXiaoHaiLaShi){
|
|
Common5.playEffectCustom(this.bundle, 'sound/拉屎');
|
|
this.closeTouchEvent(target)
|
|
this.isXiaoHaiLaShi = true
|
|
target.setPosition(this.xiaoHaiShuNode.getPosition())
|
|
this.xiaoHai.getChildByName('xiaoHaiSpine').getComponent(sp.Skeleton).setAnimation(0,"xiaohailashi",false)
|
|
this.scheduleOnce(()=>{
|
|
this.showQiPao(this.duihuaArrayConfig[7])
|
|
this.juZi.active = true
|
|
target.setPosition(target["recoveposi"])
|
|
this.xiaoHai.getChildByName('xiaoHaiSpine').getComponent(sp.Skeleton).setAnimation(0,"xiaohaizhengchang",false)
|
|
this.countFinishNum()
|
|
},2)
|
|
return
|
|
//马桶盖
|
|
}else if(target == this.maTongGai && this.isXiaoHaiLaShi){
|
|
this.showQiPao(this.duihuaArrayConfig[9])
|
|
target.active = false
|
|
this.closeTouchEvent(target)
|
|
this.xiaoHai.getChildByName('xiaoHaiSpine').getComponent(sp.Skeleton).setAnimation(0,"xiaohaimatong",false)
|
|
this.countFinishNum()
|
|
//小胖坐沙发
|
|
}else if(target == this.xiaoPang){
|
|
target.active = false
|
|
this.closeTouchEvent(target)
|
|
this.xiaoPangZuoXia.active = true
|
|
this.showQiPao(this.duihuaArrayConfig[11])
|
|
this.countFinishNum()
|
|
//倒洗脚水
|
|
}else if(target == this.jiaoPen){
|
|
Common5.playEffectCustom(this.bundle, 'sound/泼水声');
|
|
this.isXiJiaoPenYouShui = false
|
|
this.closeTouchEvent(target)
|
|
this.maTong.getChildByName('maTongSpine').getComponent(sp.Skeleton).setAnimation(0,'matong',false)
|
|
this.jiaoPen.getChildByName('jiaoPenSpine').getComponent(sp.Skeleton).setAnimation(0,'没水',false)
|
|
if(!this.isXiTuoBu){
|
|
this.showQiPao(this.duihuaArrayConfig[8])
|
|
this.endGameView(0)
|
|
}else{
|
|
this.showQiPao(this.duihuaArrayConfig[13])
|
|
this.countFinishNum()
|
|
}
|
|
|
|
}
|
|
}else if (checkNode2 && Common5.checkIntersectsBox(target, checkNode2)) {
|
|
//马桶拉屎
|
|
if(checkNode2 == this.maTong && !this.isXiaoHaiLaShi){
|
|
Common5.playEffectCustom(this.bundle, 'sound/拉屎');
|
|
this.closeTouchEvent(target)
|
|
this.isXiaoHaiLaShi = true
|
|
target.setPosition(this.xiaoHaiMaTongNode.getPosition())
|
|
this.xiaoHai.getChildByName('xiaoHaiSpine').getComponent(sp.Skeleton).setAnimation(0,"xiaohailashi",false)
|
|
this.scheduleOnce(()=>{
|
|
this.showQiPao(this.duihuaArrayConfig[8])
|
|
// this.maTong.getChildByName('maTongSpine').getComponent(sp.Skeleton).setAnimation(0,'chouqi',true)
|
|
target.setPosition(target["recoveposi"])
|
|
this.xiaoHai.getChildByName('xiaoHaiSpine').getComponent(sp.Skeleton).setAnimation(0,"xiaohaizhengchang",false)
|
|
this.endGameView(0)
|
|
},2)
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
if (target["recoveposi"]) {
|
|
target.setPosition(target["recoveposi"])
|
|
}
|
|
}
|
|
|
|
//初始化组件
|
|
initComponent() {
|
|
Game.ins.setGameTitle(this.titleArrayConfig[0])
|
|
// let lab = this.node.getChildByName("标题").getChildByName("lab");
|
|
// lab.getComponent(cc.Label).string = this.titleArrayConfig[0];
|
|
|
|
// this.touchRoleNode.active = false;
|
|
// this.refreshSchedule();
|
|
|
|
this.scheduleOnce(this.setTimeNodePos, 0);
|
|
}
|
|
|
|
|
|
setTimeNodePos() {
|
|
// let timeNode = this.node.getChildByName("timeNode")
|
|
// let addtimeNode = this.node.getChildByName("tipsBtn").getChildByName("addtimeNode")
|
|
// let timeNodePos = timeNode.getPosition()
|
|
// let addtimeNodePos = addtimeNode.getPosition()
|
|
// Game.ins.setTimePos(timeNodePos.x, timeNodePos.y)
|
|
// Game.ins.setTimeScale(0.7)
|
|
// Game.ins.setTimeBtnPos(addtimeNodePos.x, addtimeNodePos.y)
|
|
}
|
|
|
|
showQiPao(curLog,func?) {
|
|
console.log("curLog==", curLog);
|
|
|
|
Common5.playEffectCustom(this.bundle, curLog.effectUrl);
|
|
let qiPao = this.node.getChildByName("qiPao").getChildByName("qiPao_" + curLog.qiPaoPos);
|
|
qiPao.stopAllActions()
|
|
qiPao.getChildByName("str").getComponent(cc.Label).string = curLog.dialogStr
|
|
qiPao.active = true
|
|
qiPao.scale = 0
|
|
cc.tween(qiPao)
|
|
.to(0.2, { scale: 1 })
|
|
.delay(curLog.delayTime)
|
|
.call(() => {
|
|
qiPao.active = false
|
|
if (func) {
|
|
func();
|
|
}
|
|
})
|
|
.start();
|
|
}
|
|
|
|
|
|
endGameView(touchIndex) {
|
|
Game.ins.stopTime();
|
|
this.scheduleOnce(()=>{
|
|
|
|
// this.node.getChildByName("mask").active = true;
|
|
if (touchIndex == 0) {
|
|
Game.ins.showFail();
|
|
} else {
|
|
Game.ins.showSuccess();
|
|
}
|
|
},4)
|
|
|
|
}
|
|
normalTouchCheckCallback(targetNode){
|
|
if (targetNode.name == "黑袜 副本") {
|
|
this.countFinishNum()
|
|
this.showQiPao(this.duihuaArrayConfig[2])
|
|
}else if (targetNode.name == "拖把" && !this.isXiTuoBu) {
|
|
this.isXiTuoBu = true
|
|
this.countFinishNum()
|
|
this.showQiPao(this.duihuaArrayConfig[3])
|
|
}else if (targetNode.name == "肉") {
|
|
|
|
if(targetNode.checkNode.name == 'man'){
|
|
targetNode.active = true;
|
|
this.showQiPao(this.duihuaArrayConfig[5])
|
|
}else if(targetNode.checkNode.name == 'woman'){
|
|
targetNode.active = true;
|
|
this.showQiPao(this.duihuaArrayConfig[4])
|
|
}else if(targetNode.checkNode.name == 'child'){
|
|
targetNode.active = false;
|
|
this.showQiPao(this.duihuaArrayConfig[6])
|
|
this.countFinishNum()
|
|
}
|
|
|
|
}
|
|
}
|
|
countFinishNum(){
|
|
this.curFinishNum++
|
|
console.log('当前完成数==',this.curFinishNum)
|
|
if(this.curFinishNum == 3){
|
|
this.xiaoPangEnterRoom()
|
|
}
|
|
if(this.curFinishNum == 8){
|
|
this.endGameView(1)
|
|
}
|
|
}
|
|
xiaoPangEnterRoom(){
|
|
cc.tween(this.xiaoPang)
|
|
.to(2.5,{x:170})
|
|
.delay(1)
|
|
.call(()=>{
|
|
this.showQiPao(this.duihuaArrayConfig[10])
|
|
})
|
|
.delay(2)
|
|
.call(()=>{
|
|
this.initTouchEvent(this.xiaoPang,this.shaFa)
|
|
})
|
|
.start()
|
|
}
|
|
onBtnClosePhone(){
|
|
Common5.playEffect("点击音效");
|
|
this.shouJiNode.active = false
|
|
}
|
|
onBtnBuy(){
|
|
Common5.playEffect("点击音效");
|
|
this.shouJiNode.active = false
|
|
this.isShouJiFinish = true
|
|
this.zhuSpine.active = true
|
|
this.showQiPao(this.duihuaArrayConfig[12])
|
|
this.countFinishNum()
|
|
}
|
|
} |