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

359 lines
14 KiB

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";
// import NvHaiDeYiShengConfig from "./NvHaiDeYiShengConfig";
enum YearsOldEnum{
yo_2 = 0,
yo_6,
yo_12,
yo_17,
yo_23,
yo_27,
yo_35_1,
yo_35_2,
yo_60_1,
yo_60_2,
yo_80_1,
yo_80_2,
yo_80_3,
Finish
}
const { ccclass, property } = cc._decorator;
@ccclass
export default class NvHaiDeYiSheng extends WordGameBaseComponent {
@property(cc.Node)
heiPin: cc.Node = null;
@property(cc.Node)
yearStr: cc.Node = null;
@property(cc.Node)
itemIconList: cc.Node = null;
@property(cc.Node)
itemIconContent: cc.Node = null;
@property(cc.Node)
itemIcon: cc.Node = null;
//文本配置
titleArrayConfig: string[] = [];
duihuaArrayConfig: any[] = [];
unitIconListConfig: any = null;
//初始化节点
curFinishNum:number = 0
curZIndex:number = 100;
curYearsOrdIndex = YearsOldEnum.yo_2
isAction:boolean = false
isWrong:boolean = false
start() {
//Common5.playMusicCustom('nvhaideyisheng','sound/背景音' );
super.start();
DaDianScript.userEnterDaDian();
Common5.getJsonFromBundle(Common5.selectGameInfo.bundle,'script/NvHaiDeYiShengConfig',(assest)=>{
this.jsonData = assest.json
this.initParameters();
this.initComponent();
this.initView()
})
}
//初始化参数
initParameters() {
EventMgr.onEvent_custom(ryw_Event.timeOut, (tab) => {
this.endGameView(0);
}, this);
// this.fireNodeInfoArray = [];
this.titleArrayConfig = this.jsonData.titleArray//NvHaiDeYiShengConfig.getInstance().getGameConfig('titleArray') as string[];
this.duihuaArrayConfig = this.jsonData.duihuaArray//NvHaiDeYiShengConfig.getInstance().getGameConfig('duihuaArray') as any[];
this.unitIconListConfig = this.jsonData.unitIconList//NvHaiDeYiShengConfig.getInstance().getGameConfig('unitIconList') as any[];
Common.Type = 0
Common.subLevel = 0;
Common.GameSubTipConfigs = this.jsonData.tipsArray//NvHaiDeYiShengConfig.getInstance().getGameConfig('tipsArray');
Common.GameSubAnswerConfigs = this.jsonData.answersArray//NvHaiDeYiShengConfig.getInstance().getGameConfig('answersArray');
}
//初始化组件
initComponent() {
let lab = this.node.getChildByName("标题").getChildByName("lab");
lab.getComponent(cc.Label).string = this.titleArrayConfig[0];
let title = this.titleArrayConfig[0];
Game.ins.setGameTitle(title)
}
initView(){
this.setIconListData()
this.setCurYearsInfo()
}
showQiPao(curLog,func?) {
console.log("curLog==", curLog);
Common5.playEffectCustom("nvhaideyisheng", 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();
}
//设置图标列表数据
setIconListData() {
Common5.playMusicCustom('nvhaideyisheng','sound/场景二背景音' );
this.itemIconList.active = true;
this.itemIcon.active = false;
for (let index = 0; index < this.unitIconListConfig.length; index++) {
const element = this.unitIconListConfig[index];
let itemIconNode = cc.instantiate(this.itemIcon);
itemIconNode.active = true;
this.itemIconContent.addChild(itemIconNode);
let touchNode = itemIconNode.getChildByName('touchNode');
Common5.getSpriteFrameFromBundle("nvhaideyisheng", element.url, touchNode.getComponent(cc.Sprite));
if (element.name) {
itemIconNode.getChildByName('name').getComponent(cc.Label).string = element.name;
}
this.onTouchEvent(touchNode,element.targetInfo)
}
for (let index = 0; index < this.itemIconContent.children.length; index++) {
let aInt = Math.trunc(Math.random() * this.itemIconContent.children.length);
let random = this.itemIconContent.children[aInt];
this.itemIconContent.children[aInt] = this.itemIconContent.children[index];
this.itemIconContent.children[index] = random;
}
}
endGameView(touchIndex) {
Game.ins.stopTime();
this.scheduleOnce(()=>{
// this.node.getChildByName("mask").active = true;
if (touchIndex == 0) {
Game.ins.showFail();
} else {
Game.ins.showSuccess();
}
},3)
}
onTouchEvent(node, iconInfo) {
node.attr({
iconInfo: iconInfo,
recoveposi: node.getPosition(),//初始位置
recoveparent: node.parent,//初始父节点
});
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) {
if(this.isAction){
return
}
let target = event.target as cc.Node;
target.parent = this.node;
if (target['_touchListener']) {
target['_touchListener'].setSwallowTouches(true);
}
let posi = event.getLocation()//世界坐标
posi = target.parent.convertToNodeSpaceAR(posi)
target.setPosition(posi)
}
touchMoveNode(event) {
if(this.isAction){
return
}
let posi = event.getLocation()//世界坐标
let target = event.target
posi = target.parent.convertToNodeSpaceAR(posi)
target.setPosition(posi)
}
touchEndNode(event) {
if(this.isAction){
return
}
let target = event.target;
if (target['_touchListener']) {
target['_touchListener'].setSwallowTouches(false);
}
let iconInfo = target.iconInfo
for(let i=0;i<iconInfo.length;i++){
let personNode = this.node.getChildByName(iconInfo[i].scenes).getChildByName(iconInfo[i].targetYears+'Years')
if(personNode.active && Common5.checkContainsNode(personNode, target)){
target.active = false;
target.recoveparent.active = false;
for(let j=0;j<iconInfo[i].openNode.length;j++){
personNode.getChildByName(iconInfo[i].openNode[j]).active = true
}
for(let j=0;j<iconInfo[i].closeNode.length;j++){
personNode.getChildByName(iconInfo[i].closeNode[j]).active = false
}
this.finishCurStep(iconInfo[i])
return
}
}
target.parent = target.recoveparent
target.setPosition(target.recoveposi)
}
finishCurStep(iconInfo){
if(iconInfo.isWrongStep){
this.isWrong = true
}
this.isAction = true
this.curYearsOrdIndex ++
this.showQiPao(iconInfo,()=>{
this.setCurYearsInfo()
})
}
setCurYearsInfo(){
this.isAction = false
let yearOld = 2
if(this.curYearsOrdIndex == YearsOldEnum.yo_2){
this.node.getChildByName('scene1').active = true
this.setNodeFadeInOrOut(this.node.getChildByName('scene1').getChildByName('2Years'),true)
yearOld = 2
}else if(this.curYearsOrdIndex == YearsOldEnum.yo_6){
this.node.getChildByName('scene1').active = true
// this.node.getChildByName('scene1').getChildByName('2Years').active = false
// this.node.getChildByName('scene1').getChildByName('6Years').active = true
this.setNodeFadeInOrOut(this.node.getChildByName('scene1').getChildByName('2Years'),false)
this.setNodeFadeInOrOut(this.node.getChildByName('scene1').getChildByName('6Years'),true)
yearOld = 6
}else if(this.curYearsOrdIndex == YearsOldEnum.yo_12){
this.node.getChildByName('scene1').active = true
// this.node.getChildByName('scene1').getChildByName('6Years').active = false
// this.node.getChildByName('scene1').getChildByName('12Years').active = true
this.setNodeFadeInOrOut(this.node.getChildByName('scene1').getChildByName('6Years'),false)
this.setNodeFadeInOrOut(this.node.getChildByName('scene1').getChildByName('12Years'),true)
yearOld = 12
}else if(this.curYearsOrdIndex == YearsOldEnum.yo_17){
this.node.getChildByName('scene1').active = true
// this.node.getChildByName('scene1').getChildByName('12Years').active = false
// this.node.getChildByName('scene1').getChildByName('17Years').active = true
this.setNodeFadeInOrOut(this.node.getChildByName('scene1').getChildByName('12Years'),false)
this.setNodeFadeInOrOut(this.node.getChildByName('scene1').getChildByName('17Years'),true)
yearOld = 17
}else if(this.curYearsOrdIndex == YearsOldEnum.yo_23){
this.node.getChildByName('scene1').active = false
this.node.getChildByName('scene2').active = true
// this.node.getChildByName('scene2').getChildByName('23Years').active = true
this.setNodeFadeInOrOut(this.node.getChildByName('scene2').getChildByName('23Years'),true)
yearOld = 23
}else if(this.curYearsOrdIndex == YearsOldEnum.yo_27){
this.node.getChildByName('scene2').active = true
// this.node.getChildByName('scene2').getChildByName('23Years').active = false
// this.node.getChildByName('scene2').getChildByName('27Years').active = true
this.setNodeFadeInOrOut(this.node.getChildByName('scene2').getChildByName('23Years'),false)
this.setNodeFadeInOrOut(this.node.getChildByName('scene2').getChildByName('27Years'),true)
yearOld = 27
}else if(this.curYearsOrdIndex == YearsOldEnum.yo_35_1 || this.curYearsOrdIndex == YearsOldEnum.yo_35_2){
this.node.getChildByName('scene2').active = true
// this.node.getChildByName('scene2').getChildByName('27Years').active = false
// this.node.getChildByName('scene2').getChildByName('35Years').active = true
this.setNodeFadeInOrOut(this.node.getChildByName('scene2').getChildByName('27Years'),false)
this.setNodeFadeInOrOut(this.node.getChildByName('scene2').getChildByName('35Years'),true)
yearOld = 35
}else if(this.curYearsOrdIndex == YearsOldEnum.yo_60_1 || this.curYearsOrdIndex == YearsOldEnum.yo_60_2){
this.node.getChildByName('scene2').active = false
this.node.getChildByName('scene3').active = true
// this.node.getChildByName('scene3').getChildByName('60Years').active = true
this.setNodeFadeInOrOut(this.node.getChildByName('scene3').getChildByName('60Years'),true)
yearOld = 60
}else if(this.curYearsOrdIndex == YearsOldEnum.yo_80_1 || this.curYearsOrdIndex == YearsOldEnum.yo_80_2 || this.curYearsOrdIndex == YearsOldEnum.yo_80_3){
this.node.getChildByName('scene3').active = true
// this.node.getChildByName('scene3').getChildByName('60Years').active = false
// this.node.getChildByName('scene3').getChildByName('80Years').active = true
this.setNodeFadeInOrOut(this.node.getChildByName('scene3').getChildByName('60Years'),false)
this.setNodeFadeInOrOut(this.node.getChildByName('scene3').getChildByName('80Years'),true)
yearOld = 80
}else if(this.curYearsOrdIndex == YearsOldEnum.Finish){
yearOld = 80
this.scheduleOnce(()=>{
console.log('进入黑屏???')
this.heiPin.active = true
if(this.isWrong){
this.showQiPao(this.duihuaArrayConfig[1],()=>{
this.endGameView(0)
})
}else{
this.showQiPao(this.duihuaArrayConfig[0],()=>{
this.endGameView(1)
})
}
},1)
}
this.yearStr.getComponent(cc.Label).string = `${yearOld}`
}
setNodeFadeInOrOut(node,bIn){
if(bIn){
if(node.active){
return
}
node.active = true
node.opacity = 0
cc.tween(node)
.to(0.5,{opacity:255})
.start()
}else{
if(!node.active){
return
}
cc.tween(node)
.to(0.5,{opacity:0})
.call(()=>{
node.active = false
})
.start()
}
}
}