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.
450 lines
18 KiB
450 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";
|
|
|
|
const {ccclass, property} = cc._decorator;
|
|
|
|
@ccclass
|
|
export default class zhijiaoScript extends WordGameBaseComponent {
|
|
@property(cc.Node)
|
|
layer1:cc.Node = null;
|
|
@property(cc.Node)
|
|
layer2:cc.Node = null;
|
|
@property(cc.Node)
|
|
layer3:cc.Node = null;
|
|
@property(cc.Node)
|
|
leftNode:cc.Node = null;
|
|
@property(cc.Node)
|
|
rightNode:cc.Node = null;
|
|
|
|
@property(cc.Node)
|
|
copyzhibiLeft:cc.Node = null;
|
|
@property(cc.Node)
|
|
copyzhibiRight:cc.Node = null;
|
|
|
|
|
|
titleArrayConfig: string[] = [];
|
|
isGameEnd = false
|
|
leftzhibiIndex = 0
|
|
zhengqianIndex = 0
|
|
rightzhibiIndex = 0
|
|
isKaiChuang = false
|
|
start () {
|
|
super.start();
|
|
DaDianScript.userEnterDaDian();
|
|
|
|
Common5.getJsonFromBundle(Common5.selectGameInfo.bundle,'script/zhijiaoConfig',(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.layer1.getChildByName('qiPaoNodenan'), '这里有个去偏远山区支教的名额,你们两谁愿意去',3, ()=>{
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
zhibiAnim(curNode){
|
|
let zhibi1 = curNode.getChildByName('纸币2')
|
|
let qianbiCheck = curNode.getChildByName('zhibi')
|
|
for(let i=0; i<qianbiCheck.childrenCount;i++){
|
|
let copy = cc.instantiate(zhibi1)
|
|
copy.parent = zhibi1.parent
|
|
let posi = Common5.getNodeToTargetPos(copy, qianbiCheck.children[i])
|
|
let node = qianbiCheck.children[i]
|
|
copy.scale = 0.1
|
|
copy.active = true
|
|
cc.tween(copy)
|
|
.to(0.5+0.2*i,{x:posi.x, y:posi.y, scale:1})
|
|
.call(()=>{
|
|
node.active = true
|
|
})
|
|
.removeSelf()
|
|
.start()
|
|
}
|
|
}
|
|
|
|
oneZhibiAnim(curNode,qianbiChild:cc.Node){
|
|
let zhibi1 = curNode
|
|
let copy = cc.instantiate(zhibi1)
|
|
copy.parent = zhibi1.parent
|
|
let posi = Common5.getNodeToTargetPos(copy, qianbiChild)
|
|
let node = qianbiChild
|
|
copy.scale = 0.1
|
|
copy.active = true
|
|
cc.tween(copy)
|
|
.to(0.3,{x:posi.x, y:posi.y, scale:1})
|
|
.call(()=>{
|
|
node.active = true
|
|
})
|
|
.removeSelf()
|
|
.start()
|
|
}
|
|
|
|
|
|
moveToscree(node:cc.Node,callfunc=null, direct = true){
|
|
let add = 1700
|
|
if(!direct){
|
|
add = -1700
|
|
}
|
|
let recovePosi = node.getPosition()
|
|
cc.tween(node)
|
|
.to(0.7, {x:recovePosi.x+add, y:recovePosi.y})
|
|
.delay(0.7)
|
|
.to(0.7, {x:recovePosi.x, y:recovePosi.y})
|
|
.call(()=>{
|
|
if(callfunc){
|
|
callfunc()
|
|
}
|
|
})
|
|
.start()
|
|
}
|
|
|
|
opacityAnim(node, call){
|
|
node.active = true
|
|
node.opacity = 0
|
|
cc.tween(node)
|
|
.to(1.0, {opacity:255})
|
|
.call(()=>{
|
|
if(call){
|
|
call()
|
|
}
|
|
})
|
|
.start()
|
|
}
|
|
|
|
|
|
normalTouchCheckCallback(targetNode,data_){
|
|
console.log("targetNodeName+++++++++++++++++++++>" + targetNode.name);
|
|
if(targetNode.name == '支教志愿书2'){
|
|
|
|
if(data_.jihuoNode.name == 'nongcun'){
|
|
this.showQiPao(this.layer1.getChildByName('qiPaonong'), '校长我去吧',1, ()=>{
|
|
this.opacityAnim(this.layer2, ()=>{
|
|
this.layer1.active = false
|
|
this.showQiPao(this.leftNode.getChildByName('qiPaocheng'), '学校下来了一笔补助金',2, ()=>{
|
|
this.zhibiAnim(this.leftNode)
|
|
this.showQiPao(this.rightNode.getChildByName('qiPaonong'), '想不到他们的学习条件这么艰苦,我得尽自己的能力去帮助他们',4)
|
|
})
|
|
})
|
|
})
|
|
}else if(data_.jihuoNode.name == 'chengshi'){
|
|
this.layer1.getChildByName('女1').getChildByName('惊恐表情').active = true
|
|
this.showQiPao(this.layer1.getChildByName('qiPaocheng'), '我妈妈生病了离不开人,我可能去不了',3, ()=>{
|
|
targetNode.active = true
|
|
this.layer1.getChildByName('女1').getChildByName('惊恐表情').active = false
|
|
})
|
|
}
|
|
}else if(targetNode.name == 'left纸币1'){
|
|
this.leftQianCheck(targetNode,data_.jihuoNode.name)
|
|
}else if(targetNode.name == 'left纸币2'){
|
|
this.leftQianCheck(targetNode,data_.jihuoNode.name)
|
|
}else if(targetNode.name == 'left纸币3'){
|
|
this.leftQianCheck(targetNode,data_.jihuoNode.name)
|
|
}else if(targetNode.name == 'left纸币4'){
|
|
this.leftQianCheck(targetNode,data_.jihuoNode.name)
|
|
}else if(targetNode.name == 'left纸币5'){
|
|
this.leftQianCheck(targetNode,data_.jihuoNode.name)
|
|
}else if(targetNode.name == '锄头2'){
|
|
|
|
this.scheduleOnce(()=>{
|
|
|
|
this.moveToscree(this.rightNode.getChildByName('laoshi'), ()=>{
|
|
this.oneZhibiAnim(this.copyzhibiRight, this.rightNode.getChildByName('zhibi').getChildByName('纸币1'))
|
|
this.showQiPao(this.rightNode.getChildByName('qiPaonong'), '我去帮老乡干活赚的一点零用钱给孩子们',3,()=>{
|
|
this.zhengqianIndex++
|
|
if(this.zhengqianIndex == 2){
|
|
this.showQiPao(this.rightNode.getChildByName('qiPaonong'), '我存的零花钱跟工资都拿出来留给孩子们',3,()=>{
|
|
this.rightNode.getChildByName('laoshi').getChildByName('待机老师').active = true
|
|
this.rightNode.getChildByName('laoshi').getChildByName('老师拿扫把劳动').active = false
|
|
this.rightNode.getChildByName('laoshi').getChildByName('老师拿锄头').active = false
|
|
this.oneZhibiAnim(this.copyzhibiRight, this.rightNode.getChildByName('zhibi').getChildByName('纸币3'))
|
|
this.oneZhibiAnim(this.copyzhibiRight, this.rightNode.getChildByName('zhibi').getChildByName('纸币4'))
|
|
this.oneZhibiAnim(this.copyzhibiRight, this.rightNode.getChildByName('zhibi').getChildByName('纸币5'))
|
|
})
|
|
}
|
|
})
|
|
|
|
})
|
|
},0.5)
|
|
|
|
}else if(targetNode.name == '扫把2'){
|
|
this.scheduleOnce(()=>{
|
|
|
|
this.moveToscree(this.rightNode.getChildByName('laoshi'), ()=>{
|
|
this.oneZhibiAnim(this.copyzhibiRight, this.rightNode.getChildByName('zhibi').getChildByName('纸币2'))
|
|
this.showQiPao(this.rightNode.getChildByName('qiPaonong'), '我去打扫卫生赚的一点零用钱给孩子们',3,()=>{
|
|
this.zhengqianIndex++
|
|
if(this.zhengqianIndex == 2){
|
|
|
|
this.showQiPao(this.rightNode.getChildByName('qiPaonong'), '我存的零花钱跟工资都拿出来留给孩子们',3,()=>{
|
|
|
|
this.rightNode.getChildByName('laoshi').getChildByName('待机老师').active = true
|
|
this.rightNode.getChildByName('laoshi').getChildByName('老师拿扫把劳动').active = false
|
|
this.rightNode.getChildByName('laoshi').getChildByName('老师拿锄头').active = false
|
|
|
|
this.oneZhibiAnim(this.copyzhibiRight, this.rightNode.getChildByName('zhibi').getChildByName('纸币3'))
|
|
this.oneZhibiAnim(this.copyzhibiRight, this.rightNode.getChildByName('zhibi').getChildByName('纸币4'))
|
|
this.oneZhibiAnim(this.copyzhibiRight, this.rightNode.getChildByName('zhibi').getChildByName('纸币5'))
|
|
})
|
|
}
|
|
})
|
|
|
|
})
|
|
},0.5)
|
|
|
|
}else if(targetNode.name == '纸币1'){
|
|
this.rightQianCheck(targetNode,data_.jihuoNode)
|
|
}else if(targetNode.name == '纸币2'){
|
|
this.rightQianCheck(targetNode,data_.jihuoNode)
|
|
}else if(targetNode.name == '纸币3'){
|
|
this.rightQianCheck(targetNode,data_.jihuoNode)
|
|
}else if(targetNode.name == '纸币4'){
|
|
this.rightQianCheck(targetNode,data_.jihuoNode)
|
|
}else if(targetNode.name == '纸币5'){
|
|
this.rightQianCheck(targetNode,data_.jihuoNode)
|
|
}else if(targetNode.name == '捐赠金2'){
|
|
this.showQiPao(this.layer3.getChildByName('qiPaotongxue1'), '老师,感谢您当年对我们的教导,如今我跟社会上一些爱心人事一起来帮助这些孩子们',5)
|
|
}else if(targetNode.name == '人物背面'){
|
|
this.showQiPao(this.layer3.getChildByName('qiPaotongxue2'), '老师,我们记得您的教导,去帮助了一群贫苦山区的学生,这不马上就赶回来了吗',5, ()=>{
|
|
this.endGameView(true,1)
|
|
})
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
rightQianCheck(targetNode,jihuoNode){
|
|
let node = this.rightNode.getChildByName(jihuoNode.name)
|
|
if(node['ischeck']){
|
|
targetNode.active = true
|
|
return
|
|
}
|
|
|
|
|
|
node['ischeck'] = true
|
|
if(jihuoNode.name == 'xuecheck'){
|
|
this.rightzhibiIndex++
|
|
this.rightNode.getChildByName('校服学生学生').active = true
|
|
this.rightNode.getChildByName('破烂学生').active = false
|
|
this.showQiPao(this.rightNode.getChildByName('qiPaoxue'), '新校服穿着真舒服',1, ()=>{
|
|
this.zhuanchangAnim()
|
|
})
|
|
}else if(jihuoNode.name == 'kezhuocheck'){
|
|
this.rightzhibiIndex++
|
|
this.rightNode.getChildByName('课桌好').active = true
|
|
this.rightNode.getChildByName('课桌破').active = false
|
|
this.rightNode.getChildByName('讲台好').active = true
|
|
this.rightNode.getChildByName('讲台破').active = false
|
|
this.showQiPao(this.rightNode.getChildByName('qiPaoxue'), '新课桌就不会摇摇晃晃了',1, ()=>{
|
|
this.zhuanchangAnim()
|
|
})
|
|
}else if(jihuoNode.name == 'dengcheck'){
|
|
this.rightzhibiIndex++
|
|
this.rightNode.getChildByName('日光灯').active = true
|
|
this.rightNode.getChildByName('破旧灯泡').active = false
|
|
this.showQiPao(this.rightNode.getChildByName('qiPaoxue'), '晚上上课终于能看的清课本的字了',3, ()=>{
|
|
this.zhuanchangAnim()
|
|
})
|
|
}else if(jihuoNode.name == 'qiangcheck'){
|
|
this.rightzhibiIndex++
|
|
this.rightNode.getChildByName('黑板').active = true
|
|
this.rightNode.getChildByName('正常墙').active = true
|
|
this.rightNode.getChildByName('破旧正常墙').active = false
|
|
this.showQiPao(this.rightNode.getChildByName('qiPaoxue'), '我们也有黑板啦',1, ()=>{
|
|
this.zhuanchangAnim()
|
|
})
|
|
}else if(jihuoNode.name == 'chuancheck'){
|
|
if(!this.isKaiChuang){
|
|
targetNode.active = true
|
|
jihuoNode.active = true
|
|
node['ischeck'] = false
|
|
return
|
|
}
|
|
this.rightzhibiIndex++
|
|
this.rightNode.getChildByName('窗户好').active = true
|
|
this.rightNode.getChildByName('窗户破旧').active = false
|
|
this.showQiPao(this.rightNode.getChildByName('qiPaoxue'), '课余时间我们也能出去运动一下了',3, ()=>{
|
|
this.zhuanchangAnim()
|
|
})
|
|
|
|
}
|
|
}
|
|
|
|
zhuanchangAnim(){
|
|
if(this.leftzhibiIndex == 4 && this.rightzhibiIndex == 5){
|
|
this.node.getChildByName('layer25').active = true
|
|
this.layer2.active = false
|
|
|
|
this.scheduleOnce(()=>{
|
|
this.layer3.active = true
|
|
this.node.getChildByName('layer25').active = false
|
|
this.showQiPao(this.layer3.getChildByName('qiPaocheng'), '怎么我的学生一个都没有回来参加聚会')
|
|
},2.0)
|
|
}
|
|
|
|
}
|
|
|
|
leftQianCheck(targetNode,name){
|
|
let node = this.leftNode.getChildByName(name)
|
|
if(node['ischeck']){
|
|
targetNode.active = true
|
|
return
|
|
}
|
|
|
|
this.leftzhibiIndex++
|
|
node['ischeck'] = true
|
|
if(name == 'xue1check'){
|
|
this.leftNode.getChildByName('课桌好').active = true
|
|
this.leftNode.getChildByName('讲台好').active = true
|
|
this.leftNode.getChildByName('左边课桌普通').active = false
|
|
this.leftNode.getChildByName('讲台普通').active = false
|
|
this.leftNode.getChildByName('灯好').active = true
|
|
this.leftNode.getChildByName('灯坏').active = false
|
|
|
|
this.showQiPao(this.leftNode.getChildByName('qiPaocheng'), '先帮你们换批新课桌',2, ()=>{
|
|
if(this.leftzhibiIndex == 4){
|
|
this.showQiPao(this.leftNode.getChildByName('qiPaocheng'), '能够帮助孩子们在良好的环境中学习的更好让我很自豪',4 ,()=>{
|
|
this.zhuanchangAnim()
|
|
})
|
|
}
|
|
})
|
|
}else if(name == 'xue2check'){
|
|
this.leftNode.getChildByName('新文具').active = true
|
|
this.showQiPao(this.leftNode.getChildByName('qiPaocheng'), '学习物品也少不了',2, ()=>{
|
|
if(this.leftzhibiIndex == 4){
|
|
this.showQiPao(this.leftNode.getChildByName('qiPaocheng'), '能够帮助孩子们在良好的环境中学习的更好让我很自豪',4 ,()=>{
|
|
this.zhuanchangAnim()
|
|
})
|
|
}
|
|
})
|
|
}else if(name == 'heibancheck'){
|
|
this.leftNode.getChildByName('多媒体').active = true
|
|
this.leftNode.getChildByName('墙壁好').active = true
|
|
this.leftNode.getChildByName('墙壁普通').active = true
|
|
this.leftNode.getChildByName('黑板').active = true
|
|
this.showQiPao(this.leftNode.getChildByName('qiPaocheng'), '这样以后上课就更方便了',2, ()=>{
|
|
if(this.leftzhibiIndex == 4){
|
|
this.showQiPao(this.leftNode.getChildByName('qiPaocheng'), '能够帮助孩子们在良好的环境中学习的更好让我很自豪',4 ,()=>{
|
|
this.zhuanchangAnim()
|
|
})
|
|
}
|
|
})
|
|
}else if(name == 'zhuozicheck'){
|
|
this.leftNode.getChildByName('篮球羽毛球').active = true
|
|
this.showQiPao(this.leftNode.getChildByName('qiPaocheng'), '孩子们的课间运动也要跟上',2, ()=>{
|
|
if(this.leftzhibiIndex == 4){
|
|
this.showQiPao(this.leftNode.getChildByName('qiPaocheng'), '能够帮助孩子们在良好的环境中学习的更好让我很自豪',4 ,()=>{
|
|
this.zhuanchangAnim()
|
|
})
|
|
}
|
|
})
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
chuanglianClickEvent(event){
|
|
let node = event.target
|
|
cc.tween(node)
|
|
.to(1.0,{x:700})
|
|
.hide()
|
|
.start()
|
|
this.isKaiChuang = true
|
|
}
|
|
|
|
|
|
initParameters(){
|
|
this.titleArrayConfig = this.jsonData.titleArray;
|
|
|
|
Common.Type = 0;
|
|
Common.subLevel = 0;
|
|
Common.GameSubTipConfigs=[this.jsonData.tipsArray]
|
|
Common.GameSubAnswerConfigs=[this.jsonData.answersArray]
|
|
|
|
Game.ins.setGameTitle(this.titleArrayConfig[0]);
|
|
}
|
|
|
|
|
|
showQiPao(qipaoNode, str, delayTime=3, callFunc=null){
|
|
qipaoNode.scale = 0
|
|
qipaoNode.active = true
|
|
qipaoNode.stopAllActions()
|
|
qipaoNode.getChildByName("str").getComponent(cc.Label).string = str
|
|
if (str) {
|
|
Common5.playEffectCustom(Common5.selectGameInfo.bundle, "sound/"+str);
|
|
}
|
|
cc.tween(qipaoNode)
|
|
.to(0.2,{scale:1.5})
|
|
.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)
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// update (dt) {}
|
|
}
|
|
|