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.
375 lines
14 KiB
375 lines
14 KiB
3 months ago
|
// 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";
|
||
|
|
||
|
const {ccclass, property} = cc._decorator;
|
||
|
|
||
|
@ccclass
|
||
|
export default class XiangCunBianXingJi extends WordGameBaseComponent {
|
||
|
|
||
|
@property(cc.Node)
|
||
|
qipaoNan:cc.Node = null;
|
||
|
@property(cc.Node)
|
||
|
qipaoNv:cc.Node = null;
|
||
|
@property(cc.Node)
|
||
|
qipaoNan2:cc.Node = null;
|
||
|
@property(cc.Node)
|
||
|
qipaoNv2:cc.Node = null;
|
||
|
@property(cc.Node)
|
||
|
qipaoMama:cc.Node = null;
|
||
|
@property(cc.Node)
|
||
|
qipaoYeye:cc.Node = null;
|
||
|
|
||
|
@property(cc.Node)
|
||
|
gameEndNode:cc.Node = null;
|
||
|
|
||
|
@property(cc.Node)
|
||
|
yeyeNode:cc.Node = null;
|
||
|
@property(cc.Node)
|
||
|
nanhaiNode:cc.Node = null;
|
||
|
@property(cc.Node)
|
||
|
nvHaiNode:cc.Node = null;
|
||
|
|
||
|
|
||
|
finishNvIndex = 0
|
||
|
FinishNvMax = 4
|
||
|
|
||
|
titleArrayConfig: string[] = [];
|
||
|
isGameEnd: boolean = false;
|
||
|
isGuiXia = false
|
||
|
|
||
|
isTishui = false
|
||
|
isPiChai = false
|
||
|
isDushu = false
|
||
|
isChiMian = false
|
||
|
start () {
|
||
|
super.start();
|
||
|
DaDianScript.userEnterDaDian();
|
||
|
|
||
|
Common5.getJsonFromBundle(Common5.selectGameInfo.bundle,'script/XiangCunBianXingJiConfig',(assest)=>{
|
||
|
this.jsonData = assest.json
|
||
|
this.initParameters();
|
||
|
|
||
|
})
|
||
|
|
||
|
EventMgr.onEvent_custom(ryw_Event.DirectTouchMoveCheck, (data_) => {
|
||
|
this.normalTouchCheckCallback(data_.targetNode,data_);
|
||
|
}, this);
|
||
|
|
||
|
EventMgr.onEvent_custom(ryw_Event.NormalTouchMoveCheck, (data_) => {
|
||
|
this.normalTouchCheckCallback(data_.targetNode,data_);
|
||
|
}, this);
|
||
|
|
||
|
EventMgr.onEvent_custom(ryw_Event.NormalTouchEndCheck, (data_) => {
|
||
|
this.normalTouchCheckCallback(data_.targetNode,data_);
|
||
|
}, this);
|
||
|
|
||
|
this.showQiPao(this.qipaoNan, '赶紧换回来,这破地方本少爷一秒都呆不下去',3)
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
normalTouchCheckCallback(targetNode,data_){
|
||
|
console.log("targetNodeName+++++++++++++++++++++>" + targetNode.name);
|
||
|
if(targetNode.name == '新书包'){
|
||
|
|
||
|
this.unlockLevel(0)
|
||
|
this.finishNvIndex++
|
||
|
|
||
|
this.moveToscree(this.nvHaiNode, false, ()=>{
|
||
|
this.showQiPao(this.qipaoNv, '城里的学校好壮观,我要更加努力学习考上大学',4, ()=>{
|
||
|
if(this.finishNvIndex == this.FinishNvMax){
|
||
|
this.showQiPao(this.qipaoMama, '我很想要一个女儿,你又这么懂事,以后你就做我们的干女儿好不好', 4.5)
|
||
|
this.node.getChildByName('checkDown').active = true
|
||
|
}
|
||
|
})
|
||
|
})
|
||
|
}else if(targetNode.name == '机票'){
|
||
|
this.unlockLevel(1)
|
||
|
this.finishNvIndex++
|
||
|
this.showQiPao(this.qipaoNv, '外面的世界好大,我要努力读书去世界每个角落都去看看',4.5, ()=>{
|
||
|
if(this.finishNvIndex == this.FinishNvMax){
|
||
|
this.showQiPao(this.qipaoMama, '我很想要一个女儿,你又这么懂事,以后你就做我们的干女儿好不好', 4.5)
|
||
|
this.node.getChildByName('checkDown').active = true
|
||
|
}
|
||
|
})
|
||
|
}else if(targetNode.name == '裙拖动'){
|
||
|
this.unlockLevel(3)
|
||
|
this.finishNvIndex++
|
||
|
this.showQiPao(this.qipaoNv, '城里人真好,有这么多漂亮衣服',3, ()=>{
|
||
|
if(this.finishNvIndex == this.FinishNvMax){
|
||
|
this.showQiPao(this.qipaoMama, '我很想要一个女儿,你又这么懂事,以后你就做我们的干女儿好不好', 4.5)
|
||
|
this.node.getChildByName('checkDown').active = true
|
||
|
}
|
||
|
})
|
||
|
}else if(targetNode.name == '菜2'){
|
||
|
this.unlockLevel(2)
|
||
|
this.finishNvIndex++
|
||
|
this.showQiPao(this.qipaoNv, '城里人的午饭都好丰富',2, ()=>{
|
||
|
if(this.finishNvIndex == this.FinishNvMax){
|
||
|
this.showQiPao(this.qipaoMama, '我很想要一个女儿,你又这么懂事,以后你就做我们的干女儿好不好', 4.5)
|
||
|
this.node.getChildByName('checkDown').active = true
|
||
|
}
|
||
|
})
|
||
|
}else if(targetNode.name == 'checkDown'){
|
||
|
this.unlockLevel(4)
|
||
|
this.isGuiXia = true
|
||
|
this.node.getChildByName('跪2').active = true
|
||
|
this.showQiPao(this.qipaoNv, '我愿意',2)
|
||
|
}else if(targetNode.name == '一袋土豆'){
|
||
|
|
||
|
this.scheduleOnce(()=>{
|
||
|
this.moveToscree(this.yeyeNode, true, ()=>{
|
||
|
this.yeyeNode.getChildByName('爷爷').getChildByName('土豆袋').active = false
|
||
|
this.yeyeNode.getChildByName('爷爷').getChildByName('入学通知书').active = true
|
||
|
this.showQiPao(this.qipaoYeye, '家里唯一的食物给你交了学费,你要好好读书')
|
||
|
})
|
||
|
},1.0)
|
||
|
|
||
|
|
||
|
}else if(targetNode.name == '木桶'){
|
||
|
this.unlockLevel(7)
|
||
|
this.isTishui = true
|
||
|
this.scheduleOnce(()=>{
|
||
|
this.moveToscree(this.nanhaiNode, true, ()=>{
|
||
|
this.nanhaiNode.getChildByName('男生').getChildByName('木桶有水').getChildByName('空桶').active = false
|
||
|
this.showQiPao(this.qipaoNan, '自己劳动挑的山泉水可比买的矿泉水甜多了',3, ()=>{
|
||
|
this.nanhaiNode.getChildByName('男生').getChildByName('木桶有水').active = false
|
||
|
})
|
||
|
})
|
||
|
},1.0)
|
||
|
|
||
|
}else if(targetNode.name == '柴刀'){
|
||
|
this.unlockLevel(5)
|
||
|
this.isPiChai = true
|
||
|
this.scheduleOnce(()=>{
|
||
|
this.nanhaiNode.getChildByName('柴刀手上').active = false
|
||
|
this.moveToscree(this.nanhaiNode, true, ()=>{
|
||
|
this.nanhaiNode.getChildByName('柴火').active = true
|
||
|
this.nanhaiNode.getChildByName('男生').getChildByName('柴火前').active = true
|
||
|
this.showQiPao(this.qipaoNan, '原来种地这么幸苦,以后再也不浪费粮食了',3,()=>{
|
||
|
this.nanhaiNode.getChildByName('柴火').active = false
|
||
|
this.nanhaiNode.getChildByName('男生').getChildByName('柴火前').active = false
|
||
|
})
|
||
|
})
|
||
|
},1.0)
|
||
|
|
||
|
|
||
|
}else if(targetNode.name == '锅'){
|
||
|
this.unlockLevel(8)
|
||
|
if(this.isTishui && this.isPiChai && this.isDushu){
|
||
|
this.isChiMian = true
|
||
|
this.nanhaiNode.active = false
|
||
|
this.node.getChildByName('狂吃spine').active = true
|
||
|
this.showQiPao(this.qipaoNan, '哎呀妈,真香',3, ()=>{
|
||
|
this.nanhaiNode.active = true
|
||
|
this.node.getChildByName('狂吃spine').active = false
|
||
|
// if(this.finishNvIndex == this.FinishNvMax && this.isGuiXia){
|
||
|
// this.showEndGame()
|
||
|
// }
|
||
|
})
|
||
|
}else{
|
||
|
targetNode.active = true
|
||
|
this.showQiPao(this.qipaoNan, '我王敬泽就算饿死,也不会吃你们一点东西')
|
||
|
}
|
||
|
}else if(targetNode.name == '入学通知书'){
|
||
|
this.unlockLevel(6)
|
||
|
this.isDushu = true
|
||
|
this.scheduleOnce(()=>{
|
||
|
this.nanhaiNode.getChildByName('入学通知书').active = false
|
||
|
|
||
|
this.moveToscree(this.nanhaiNode, true, ()=>{
|
||
|
this.showQiPao(this.qipaoNan, '原来山区的孩子想上学都这么困难')
|
||
|
})
|
||
|
},1.0)
|
||
|
|
||
|
}else if(targetNode.name == 'NodeNan'){
|
||
|
this.unlockLevel(9)
|
||
|
this.nanhaiNode['recoveposi'] = null
|
||
|
this.nvHaiNode['recoveposi'] = null
|
||
|
this.nanhaiNode.active = true
|
||
|
this.nvHaiNode.active = true
|
||
|
this.node.getChildByName('跪2').active = false
|
||
|
this.nanhaiNode.setPosition(cc.v2(this.node.getChildByName('NodeNanPosi').getPosition().x, this.node.getChildByName('NodeNanPosi').getPosition().y))
|
||
|
this.nvHaiNode.setPosition(cc.v2(this.node.getChildByName('NodeNvPosi').getPosition().x, this.node.getChildByName('NodeNvPosi').getPosition().y))
|
||
|
this.scheduleOnce(()=>{
|
||
|
|
||
|
this.showEndGame()
|
||
|
},1.0)
|
||
|
}else if(targetNode.name == 'NodeNv'){
|
||
|
this.nanhaiNode['recoveposi'] = null
|
||
|
this.nvHaiNode['recoveposi'] = null
|
||
|
this.nanhaiNode.active = true
|
||
|
this.nvHaiNode.active = true
|
||
|
this.node.getChildByName('跪2').active = false
|
||
|
this.nanhaiNode.setPosition(cc.v2(this.node.getChildByName('NodeNanPosi').getPosition().x, this.node.getChildByName('NodeNanPosi').getPosition().y))
|
||
|
this.nvHaiNode.setPosition(cc.v2(this.node.getChildByName('NodeNvPosi').getPosition().x, this.node.getChildByName('NodeNvPosi').getPosition().y))
|
||
|
this.scheduleOnce(()=>{
|
||
|
this.showEndGame()
|
||
|
},2.0)
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
moveToscree(node:cc.Node, isNan,callfunc=null){
|
||
|
let add = -1700
|
||
|
if(isNan){
|
||
|
add = 1700
|
||
|
}
|
||
|
let recovePosi = node.getPosition()
|
||
|
cc.tween(node)
|
||
|
.to(0.3, {x:recovePosi.x+add, y:recovePosi.y})
|
||
|
.delay(1.5)
|
||
|
.to(0.3, {x:recovePosi.x, y:recovePosi.y})
|
||
|
.call(()=>{
|
||
|
if(callfunc){
|
||
|
callfunc()
|
||
|
}
|
||
|
})
|
||
|
.start()
|
||
|
}
|
||
|
|
||
|
initParameters(){
|
||
|
this.titleArrayConfig = this.jsonData.titleArray;
|
||
|
|
||
|
Common.Type = 3;
|
||
|
Common.subLevel = 0;
|
||
|
Common.GameSubTipConfigs = this.jsonData.answersArray;
|
||
|
|
||
|
Game.ins.setGameTitle(this.titleArrayConfig[0]);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
showQiPao(qipaoNode, str, delayTime=3, callFunc=null, isPlayEffect = true){
|
||
|
qipaoNode.scale = 0
|
||
|
qipaoNode.active = true
|
||
|
qipaoNode.stopAllActions()
|
||
|
qipaoNode.getChildByName("str").getComponent(cc.Label).string = str
|
||
|
if (str && isPlayEffect) {
|
||
|
Common5.playEffectCustom(Common5.selectGameInfo.bundle, "sound/"+str);
|
||
|
}
|
||
|
cc.tween(qipaoNode)
|
||
|
.to(0.2,{scale:1})
|
||
|
.delay(delayTime)
|
||
|
|
||
|
.call(()=>{
|
||
|
qipaoNode.active = false
|
||
|
|
||
|
if(callFunc){
|
||
|
callFunc()
|
||
|
}
|
||
|
})
|
||
|
.start()
|
||
|
}
|
||
|
|
||
|
endGameView(isSuccess, delay = 3) {
|
||
|
if( this.isGameEnd ){
|
||
|
return
|
||
|
}
|
||
|
this.isGameEnd = true
|
||
|
|
||
|
if(isSuccess){
|
||
|
Game.ins.stopTime();
|
||
|
this.scheduleOnce(()=>{
|
||
|
Game.ins.showSuccess()
|
||
|
},delay)
|
||
|
}else{
|
||
|
Game.ins.stopTime();
|
||
|
this.scheduleOnce(()=>{
|
||
|
Game.ins.showFail()
|
||
|
},delay)
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
unlockLevel(sublevel) {
|
||
|
Game.ins.tipUnlock(sublevel)
|
||
|
}
|
||
|
|
||
|
showEndGame(){
|
||
|
let endGame = this.node.getChildByName('endGame')
|
||
|
endGame.zIndex = 99
|
||
|
this.qipaoNan2.zIndex = 199
|
||
|
this.qipaoNv2.zIndex = 199
|
||
|
endGame.active = true
|
||
|
this.scheduleOnce(()=>{
|
||
|
|
||
|
|
||
|
endGame.getChildByName('blackNode').active = false
|
||
|
|
||
|
|
||
|
|
||
|
let isSuccess = false
|
||
|
let nanNode = endGame.getChildByName('nan')
|
||
|
let nvNode = endGame.getChildByName('nv')
|
||
|
let nanStr = ''
|
||
|
let nvStr = ''
|
||
|
let delayNan = 3
|
||
|
let delayNv = 3
|
||
|
if(this.isChiMian){
|
||
|
nanNode.getChildByName('办公司').active = true
|
||
|
nanNode.getChildByName('success').active = true
|
||
|
nanNode.getChildByName('fail').active = false
|
||
|
nanNode.getChildByName('墙壁bg').active = false
|
||
|
nanStr = '我获得了爸妈的支持,在自己喜欢的领域开创了属于自己的一片天地'
|
||
|
|
||
|
delayNan = 4.5
|
||
|
}else{
|
||
|
nanNode.getChildByName('办公司').active = false
|
||
|
nanNode.getChildByName('success').active = false
|
||
|
nanNode.getChildByName('fail').active = true
|
||
|
nanNode.getChildByName('墙壁bg').active = true
|
||
|
nanStr = '家产都被我全部败光了'
|
||
|
|
||
|
delayNan = 1.5
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
if(this.finishNvIndex == this.FinishNvMax && this.isGuiXia){
|
||
|
nvNode.getChildByName('左边bg好').active = true
|
||
|
nvNode.getChildByName('success').active = true
|
||
|
nvNode.getChildByName('fail').active = false
|
||
|
nvNode.getChildByName('左边bg破').active = false
|
||
|
|
||
|
nvStr = '干妈资助我读完了大学,接下来我要努力工作回报社会'
|
||
|
delayNv = 4
|
||
|
}else{
|
||
|
nvNode.getChildByName('左边bg好').active = false
|
||
|
nvNode.getChildByName('success').active = false
|
||
|
nvNode.getChildByName('fail').active = true
|
||
|
nvNode.getChildByName('左边bg破').active = true
|
||
|
|
||
|
nvStr = '这破家太穷了,我要回城里妈妈家去'
|
||
|
delayNv =2.5
|
||
|
}
|
||
|
|
||
|
|
||
|
this.showQiPao(this.qipaoNan2, nanStr, delayNan, ()=>{
|
||
|
this.showQiPao(this.qipaoNv2, nvStr, delayNv, ()=>{
|
||
|
if(this.isChiMian && this.finishNvIndex == this.FinishNvMax && this.isGuiXia){
|
||
|
isSuccess = true
|
||
|
}
|
||
|
this.endGameView(isSuccess, 2)
|
||
|
})
|
||
|
})
|
||
|
},2)
|
||
|
|
||
|
|
||
|
}
|
||
|
// update (dt) {}
|
||
|
}
|