咸鱼的反击
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.
 
 
 

434 lines
16 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 PingKuYiJia extends WordGameBaseComponent {
@property(cc.Node)
qipaoNode:cc.Node = null;
@property(cc.Node)
qipaoNode2:cc.Node = null;
@property(cc.Node)
qipaoNodeNanwa:cc.Node = null;
@property(cc.Node)
qipaoNodeNvWa:cc.Node = null;
@property(cc.Node)
huliSpine:cc.Node = null;
@property(cc.Node)
nainaiNode:cc.Node = null;
@property(cc.Node)
yeyeNode:cc.Node = null;
@property(cc.Node)
nanhaiNode:cc.Node = null;
@property(cc.Node)
nvhaiNode:cc.Node = null;
curIndex = 0
titleArrayConfig: string[] = [];
duihuaArrayConfig: any[] = [];
chadianArrayConfig: any[] = [];
wrongAnswerConfig: string[] = [];
answersDuihuaConfig: any[] = [];
checkNodeArray: string[] = [];
// LIFE-CYCLE CALLBACKS:
curFinishNum:number = 0
chadianMax = 7
// onLoad () {}
chadianMax2 = 10
isAllRight = true
start () {
super.start();
DaDianScript.userEnterDaDian();
Common5.getJsonFromBundle(Common5.selectGameInfo.bundle,'script/PingKuYiJiaConfig',(assest)=>{
this.jsonData = assest.json
this.initParameters();
})
EventMgr.onEvent_custom(ryw_Event.DirectTouchMoveCheck, (data_) => {
this.normalTouchCheckCallback(data_.targetNode);
}, this);
EventMgr.onEvent_custom(ryw_Event.NormalTouchMoveCheck, (data_) => {
this.normalTouchCheckCallback(data_.targetNode);
}, this);
// EventMgr.onEvent_custom(ryw_Event.timeOut, (tab) => {
// this.failView();
// }, this);
}
initParameters(){
this.titleArrayConfig = this.jsonData.titleArray;
this.duihuaArrayConfig = this.jsonData.duihuaArray;
this.chadianArrayConfig = this.jsonData.chadianArray;
this.wrongAnswerConfig = this.jsonData.wrongAnswer;
this.answersDuihuaConfig = this.jsonData.answersDuihua;
this.checkNodeArray = this.jsonData.checkNode;
Common.Type = 3;
Common.subLevel = 0;
Common.GameSubTipConfigs = this.jsonData.answersArray;
this.curIndex = 0
Game.ins.setGameTitle(this.titleArrayConfig[0]);
let qianbiNodes = this.node.getChildByName("纸币堆1")
this.specialNodeTouchEvent(qianbiNodes)
}
normalTouchCheckCallback(targetNode){
}
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})
.delay(delayTime)
.call(()=>{
qipaoNode.active = false
if(callFunc){
callFunc()
}
})
.start()
}
endGameView(delay = 3) {
if(this.curIndex>=10){
Game.ins.stopTime();
this.scheduleOnce(()=>{
Game.ins.showSuccess()
},delay)
}
}
unlockLevel(sublevel) {
Game.ins.tipUnlock(sublevel)
}
//特殊节点的点击事件(主要处理节点可以移动的问题)
specialNodeTouchEvent(qianbiNodes){
for(let i=0;i<qianbiNodes.childrenCount;i++){
this.openTouchEvent(qianbiNodes.children[i], this.checkNodeArray)
}
}
openTouchEvent(node, checkNodeTab){
var attrs = {
isCanMove:true,
checkNodeTab: checkNodeTab,
startPos: node.getPosition(),//初始位置
};
node.attr(attrs)
node.on(cc.Node.EventType.TOUCH_START,this.touchStartSpecicalNode,this)
node.on(cc.Node.EventType.TOUCH_MOVE,this.touchMoveSpecicalNode,this)
node.on(cc.Node.EventType.TOUCH_CANCEL,this.touchEndSpecicalNode,this)
node.on(cc.Node.EventType.TOUCH_END,this.touchEndSpecicalNode,this)
}
closeTouchEvent(node){
node.off(cc.Node.EventType.TOUCH_START,this.touchStartSpecicalNode,this)
node.off(cc.Node.EventType.TOUCH_MOVE,this.touchMoveSpecicalNode,this)
node.off(cc.Node.EventType.TOUCH_CANCEL,this.touchEndSpecicalNode,this)
node.off(cc.Node.EventType.TOUCH_END,this.touchEndSpecicalNode,this)
}
touchStartSpecicalNode(event){
Common5.playEffect("click")
}
touchMoveSpecicalNode(event){
let target = event.target;
if(!target.isCanMove){
return
}
let posi = event.getLocation()//世界坐标
posi = target.parent.convertToNodeSpaceAR(posi)
target.setPosition(posi)
}
saqianAnim(){
let qianbiNodes = this.node.getChildByName("纸币堆2")
qianbiNodes.active = true
let zhibiNode = this.node.getChildByName('纸币')
for(let i = 0; i<qianbiNodes.childrenCount;i++){
let copyNode = cc.instantiate(zhibiNode)
copyNode.parent = zhibiNode.parent
copyNode.active = true
let posiArray = Common5.getNodeToTargetPos(copyNode, qianbiNodes.children[i])
copyNode.scale = 0.1
cc.tween(copyNode)
.delay(0.2*i)
.to(1.0, {x:posiArray.x, y:posiArray.y, scale:1})
.call(()=>{
qianbiNodes.children[i].active = true
if(i==qianbiNodes.childrenCount-1){
let qianbiNodes = this.node.getChildByName("纸币堆2")
this.specialNodeTouchEvent(qianbiNodes)
}
copyNode.removeFromParent()
copyNode.destroy()
})
.start()
}
}
touchEndSpecicalNode(event){
// event.target.zIndex = 0
let target = event.target;
let checkTarget = this.checkArea(target,target.checkNodeTab)
if (checkTarget) {
this.curFinishNum ++
console.log(checkTarget.name, 'checkTarget.name+++++====')
target.active = false
checkTarget.active = false
if(checkTarget.name == 'check狐狸1'){
this.huliSpine.getComponent(sp.Skeleton).setAnimation(0,'狐狸站立',true)
this.showQiPao( this.qipaoNode, '谢谢爷爷,我还有点冷', 3)
this.unlockLevel(0)
}else if(checkTarget.name == 'check狐狸2'){
this.huliSpine.getComponent(sp.Skeleton).setAnimation(0,'狐狸穿衣',true)
this.showQiPao( this.qipaoNode, '谢谢爷爷,我还缺点首饰', 3)
this.unlockLevel(1)
}else if(checkTarget.name == 'check狐狸3'){
this.huliSpine.getComponent(sp.Skeleton).setAnimation(0,'狐狸戴项链',true)
this.showQiPao( this.qipaoNode, '谢谢爷爷,我还想要一副墨镜', 3)
this.unlockLevel(2)
}else if(checkTarget.name == 'check狐狸4'){
this.huliSpine.getComponent(sp.Skeleton).setAnimation(0,'狐狸戴墨镜',true)
this.showQiPao( this.qipaoNode, '谢谢爷爷,我还想要一双华伦天奴', 3)
this.unlockLevel(3)
}else if(checkTarget.name == 'check狐狸5'){
this.huliSpine.getComponent(sp.Skeleton).setAnimation(0,'狐狸高跟鞋',true)
this.showQiPao( this.qipaoNode, '谢谢爷爷,再给我买辆车', 3)
this.unlockLevel(4)
}else if(checkTarget.name == 'check狐狸6'){
this.huliSpine.getComponent(sp.Skeleton).setAnimation(0,'狐狸车钥匙',true)
this.showQiPao( this.qipaoNode, '谢谢爷爷,再给一点零花钱', 3)
this.unlockLevel(5)
}else if(checkTarget.name == 'check狐狸7'){
this.huliSpine.getComponent(sp.Skeleton).setAnimation(0,'狐狸零花钱',true)
this.unlockLevel(6)
this.showQiPao( this.qipaoNode, '爷爷等我回来报答你', 3, ()=>{
this.huliSpine.getComponent(sp.Skeleton).setAnimation(0,'狐狸出门',false)
this.scheduleOnce(()=>{
this.huliSpine.getComponent(sp.Skeleton).setAnimation(0,'双人进门',false)
this.scheduleOnce(()=>{
this.huliSpine.getComponent(sp.Skeleton).setAnimation(0,'撒钱',true)
//对话
Common5.playEffectCustom(Common5.selectGameInfo.bundle, "sound/撒钱");
this.showQiPao( this.qipaoNode2, '这是我娶小美的彩礼,以后小美就交给我了', 4, ()=>{
this.huliSpine.active = false
})
this.scheduleOnce(()=>{
this.saqianAnim()
},1.0)
},1.3)
},2.0)
})
}else {
this.isAllRight = false
if(this.curIndex == 0){
Common.SpeTip = '您已触发错误操作,请重试'
}
if(checkTarget.name == 'check门'){
this.node.getChildByName('门旧').active = false
this.node.getChildByName('门新').active = true
if(this.curIndex == 1){
this.unlockLevel(14)
}
}else if(checkTarget.name == 'check窗户'){
this.node.getChildByName('旧窗户').active = false
this.node.getChildByName('新窗户').active = true
if(this.curIndex == 1){
this.unlockLevel(13)
}
}else if(checkTarget.name == 'check床'){
this.node.getChildByName('草席').active = false
this.node.getChildByName('床铺').active = true
if(this.curIndex == 1){
this.unlockLevel(10)
}
}else if(checkTarget.name == 'check母鸡'){
this.node.getChildByName('鸡').active = false
this.node.getChildByName('烤鸡').active = true
if(this.curIndex == 1){
this.unlockLevel(15)
}
}else if(checkTarget.name == 'check奶奶'){
if(this.curIndex == 1){
this.unlockLevel(11)
}
this.nainaiNode.getComponent(sp.Skeleton).setAnimation(0,'老奶奶2',true)
}else if(checkTarget.name == 'check爷爷'){
this.yeyeNode.getComponent(sp.Skeleton).setAnimation(0,'老爷爷2',true)
if(this.curIndex == 1){
this.unlockLevel(9)
}
}else if(checkTarget.name == 'check男娃1'){
this.nanhaiNode.getComponent(sp.Skeleton).setAnimation(0,'小男孩新衣服',true)
if(this.curIndex == 0){
this.showQiPao( this.qipaoNodeNanwa, '爷爷,我想穿新衣服', 3)
}else{
this.unlockLevel(8)
}
}else if(checkTarget.name == 'check男娃2'){
this.nanhaiNode.getComponent(sp.Skeleton).setAnimation(0,'小男孩棉袄',true)
this.showQiPao( this.qipaoNodeNanwa, '爷爷,我想打扮的漂亮一点', 3)
}else if(checkTarget.name == 'check男娃3'){
this.nanhaiNode.getComponent(sp.Skeleton).setAnimation(0,'小男孩杀马特',true)
this.showQiPao( this.qipaoNodeNanwa, '爷爷我兄弟来找我了,我出去了', 3, ()=>{
this.nanhaiNode.getComponent(sp.Skeleton).setAnimation(0,'小男孩出门',false)
})
}else if(checkTarget.name == 'check女娃1'){
this.nvhaiNode.getComponent(sp.Skeleton).setAnimation(0,'女孩新衣服',true)
if(this.curIndex == 0){
this.showQiPao( this.qipaoNodeNvWa, '爷爷,我想穿新衣服。', 3)
}else{
this.unlockLevel(7)
}
}else if(checkTarget.name == 'check女娃2'){
this.nvhaiNode.getComponent(sp.Skeleton).setAnimation(0,'女孩棉袄',true)
this.showQiPao( this.qipaoNodeNvWa, '爷爷,我想打扮的漂亮一点。', 3)
}else if(checkTarget.name == 'check女娃3'){
this.nvhaiNode.getComponent(sp.Skeleton).setAnimation(0,'女孩杀马特',true)
this.showQiPao( this.qipaoNodeNvWa, '我闺蜜来找我了,我出去了', 3, ()=>{
this.nvhaiNode.getComponent(sp.Skeleton).setAnimation(0,'女孩出门',false)
})
}else if(checkTarget.name == 'check墙壁'){
this.node.getChildByName('破旧背景').active = false
this.node.getChildByName('新背景').active = true
if(this.curIndex == 1){
this.unlockLevel(16)
}
}else if(checkTarget.name == 'check火柴堆'){
this.node.getChildByName('火柴堆').getComponent(sp.Skeleton).setAnimation(0,'小太阳',true)
if(this.curIndex == 1){
this.unlockLevel(12)
}
}
}
this.checkIsFinish()
}else{
event.target.setPosition(event.target.startPos)
}
}
checkIsFinish(){
if(this.curIndex == 0){
if(this.curFinishNum >= this.chadianMax){
this.curIndex++
this.curFinishNum = 0
//下一个阶段
if(this.isAllRight){
this.node.getChildByName('check男娃2').active = false
this.node.getChildByName('check男娃3').active = false
this.node.getChildByName('check女娃2').active = false
this.node.getChildByName('check女娃3').active = false
// let qianbiNodes = this.node.getChildByName("纸币堆2")
// this.specialNodeTouchEvent(qianbiNodes)
}else{
this.scheduleOnce(()=>{
Game.ins.showFail()
},1)
}
}
}else{
if(this.curFinishNum >= this.chadianMax2){
console.log('结算+++===')
this.scheduleOnce(()=>{
if(this.curFinishNum >= this.chadianMax){
Game.ins.showSuccess()
}
},2)
}
}
}
checkArea(node,checkNodeTab){
let checkIndex = null
for(let i=0;i<checkNodeTab.length;i++){
let target = this.node.getChildByName(checkNodeTab[i])
if(target && target.active && Common5.checkContainsNode(target,node)){
checkIndex = target
break
}
}
return checkIndex
}
// update (dt) {}
}