我智商爆棚
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.
 
 
 
 
 

567 lines
21 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 { ryw_Event } from "../FrameWork/Event/EventEnum";
import EventMgr from "../FrameWork/Event/EventMgr";
import GameReport, { OUTTYPE } from "../FrameWork/Report/ZyZyReport";
import User from "../FrameWork/User/User";
import AppPlatform from "../FrameWork/Util/AppPlatform";
import Common from "../FrameWork/Util/Common";
import Common5 from "../Platform/th/Common5";
import TTAPI from "../Platform/tt/TTAPI";
import GameFailUI from "../Scripts/GameFailUI";
import GameSuccessUI from "../Scripts/GameSuccessUI";
import MainScene from "./MainSceneScript";
const {ccclass, property} = cc._decorator;
@ccclass
export default class Game extends cc.Component {
@property(cc.Node)
backNode: cc.Node = null;
@property(cc.Node)
prefabNode: cc.Node = null;
@property(cc.Node)
maskNode: cc.Node = null;
@property(cc.Sprite)
timeSpript: cc.Sprite = null;
@property(cc.Label)
titleLabel: cc.Label = null;
@property(cc.Label)
timeLabel: cc.Label = null;
@property(cc.Node)
timeNode: cc.Node = null;
@property(cc.Node)
addtimeBtn: cc.Node = null;
@property(cc.Node)
tipAdNode: cc.Node = null;
@property(cc.Node)
tipNoAdNode: cc.Node = null;
@property(cc.Node)
answerNode: cc.Node = null;
@property(cc.Node)
guizeNode: cc.Node = null;
@property(cc.Label)
guizeLabel: cc.Label = null;
@property(cc.Node)
guizeBtnNode: cc.Node = null;
@property(cc.Node)
guizeCloseBtnNode: cc.Node = null;
znzTime = 15;
targetNode = [];
isLoading = false;
oldScale = 1;
tempGameConfig = null;
allTargetNum = 0;
finishTargetNum = 0;
allTime = 0;
lefTime = 0;
isFinish = false;
playTime = 0;
tmpUnlockSubLevel = -1;
finishSub = [];
// LIFE-CYCLE CALLBACKS:
// onLoad () {}
public static ins: Game = null;
isExitTip =false;
protected onLoad(): void {
Game.ins = this;
this.oldScale = this.node.scale;
console.log(this.oldScale);
this.node.active = false;
EventMgr.onEvent_custom(ryw_Event.tooltipClose,()=>{
this.updateTishiBtn();
},this)
Common5.playMusic("bg");
// this.node.getChildByName("mask").height = this.node.getChildByName("mask").height * this.node.width/this.node.getChildByName("mask").width ;
// this.node.getChildByName("mask").width = this.node.width;
}
start () {
this.maskNode.getComponent(cc.Widget).updateAlignment();
// this.prefabNode.getComponent(cc.Widget).updateAlignment();
this.node.on(cc.Node.EventType.TOUCH_START,(event)=>{
//console.log(event.getLocation())
MainScene.ins.showClickEffect(event.getLocation())
},this,true)
EventMgr.onEvent_custom(ryw_Event.startTimeTick,()=>{
if(Common5.selectGameInfo.isNeedTime){
this.isFinish = false
this.schedule(this.refreshTime,1)
}
},this)
EventMgr.onEvent_custom(ryw_Event.game_continue,()=>{
this.isFinish = false
this.lefTime = Common5.selectGameInfo.timeInit;
this.allTime = Common5.selectGameInfo.timeInit;
this.schedule(this.refreshTime,1)
},this)
EventMgr.onEvent_custom(ryw_Event.stopTimeTick,()=>{
this.stopTime();
},this)
}
toolTip(){
}
closeGuize(){
this.guizeNode.active = false;
}
showGui(){
//this.guizeNode.active = true;
EventMgr.emitEvent_custom(ryw_Event.openGuizeLayerEvent)
}
setGuizeText(str){
this.guizeLabel.string = str;
}
showSuccess(){
this.stopTime();
EventMgr.emitEvent_custom(ryw_Event.finish_game);
this.playSuccessDadian()
User.setSuccessLevels(Common5.selectGameNum);
Common5.getPrefabFromBundle("ZoomGame","prefab/view/GameSuccessView",null,(node)=>{
// node.getComponent(GameFailUI).setAddTime(Common5.selectGameInfo.timeVideoAdd);
})
}
showFail(){
this.stopTime();
EventMgr.emitEvent_custom(ryw_Event.finish_game);
Common5.getPrefabFromBundle("ZoomGame","prefab/view/GameFailView",null,(node)=>{
// node.getComponent(GameFailUI).setAddTime(Common5.selectGameInfo.timeVideoAdd);
})
}
showFailFuHuo(){
this.stopTime();
EventMgr.emitEvent_custom(ryw_Event.finish_game);
Common5.getPrefabFromBundle("ZoomGame","prefab/view/GameFailView",null,(node)=>{
node.getComponent(GameFailUI).setFuhuoActive();
})
}
addTick(timeTick){
return;
this.lefTime += timeTick;
this.allTime += timeTick;
}
setTimePos(x,y){
// this.timeNode.setPosition(x,y);
}
setTimeScale(scale){
this.timeNode.scale = scale;
}
setTitle(title){
this.titleLabel.string = title;
}
refreshTime(){
this.playTime++;
if (this.lefTime <=0){
if (!this.isFinish){
console.error("fail++====refreshTime");
this.finishThisGame();
EventMgr.emitEvent_custom(ryw_Event.finish_game);
Common5.getPrefabFromBundle("ZoomGame","prefab/view/GameFailTimeOutView",null,(node)=>{
// node.getComponent(GameFailUI).setAddTime(Common5.selectGameInfo.timeVideoAdd);
})
}
}
else {
this.lefTime--;
if (this.lefTime < 10){
Common5.playEffect("timeTick");
}
this.updateTimeProg();
}
}
tipUnlock(subLevel){
User.unlockWordgameAnswer(Common5.selectGameNum,subLevel,2);
this.finishSub.push(subLevel);
this.updateTishiBtn();
}
tipAd(){
let tab = {
onClose: (finish) => {
if (finish) {
GameReport.ADReport('提示',Common5.selectGameInfo.title2,1)
Common5.ReportDY("inLevel", Common5.selectGameInfo.title2 + "-AD-提示");
if (Common.Type == 3){
let index = 0;
let answer = User.getUnlockWordgameAnswer(Common5.selectGameNum)
if (answer){
for (let i = 0; i < Common.GameSubTipConfigs.length; i++){
if (answer[i]!=2){
index = i;
break;
}
}
}
Common.subLevel = index;
User.unlockWordgameAnswer(Common5.selectGameNum,index,2);
this.tipAdNode.active = false;
this.tipNoAdNode.active = true;
this.answerNode.active = false;
this.showTipAnswer();
return;
}
User.unlockWordgameAnswer(Common5.selectGameNum,Common.subLevel,1);
if (Common.Type == 1){
User.unlockWordgameAnswer(Common5.selectGameNum,Common.subLevel,2);
this.updateTishiBtn();
}
this.showTipAnswer();
return;
}
else {
GameReport.ADReport('提示',Common5.selectGameInfo.title2,0)
Common5.showTips_custom("广告未观看完");
}
}, onFailed: () => {
}
}
AppPlatform.playVideo_custom(tab)
}
updateTishiBtn(){
if (Common5.selectGameInfo.gameType != "guize"){
this.guizeBtnNode.active = false;
}else if (Common5.selectGameInfo.gameType == "guize"){
this.guizeBtnNode.active = true;
}
let answer = User.getUnlockWordgameAnswer(Common5.selectGameNum)
if (Common.Type == 3){
let index = -1;
let answer = User.getUnlockWordgameAnswer(Common5.selectGameNum)
if (answer){
for (let i = 0; i < this.finishSub.length; i++){
if (answer[this.finishSub[i]]!=2){
this.tipAdNode.active = false;
this.tipNoAdNode.active = true;
this.answerNode.active = false;
Common.subLevel = this.finishSub[i];
return;
}
}
for (let i = 0; i < Common.GameSubTipConfigs.length; i++){
if (answer[i] == 2){
let finish = false;
for (let j = 0; j < this.finishSub.length; j++){
if (this.finishSub[j] == i){
finish = true;
break;
}
}
if (!finish){
this.tipAdNode.active = false;
this.tipNoAdNode.active = true;
this.answerNode.active = false;
Common.subLevel = this.finishSub[i];
return;
}
}
}
for (let i = 0; i < Common.GameSubTipConfigs.length; i++){
if (answer[i]!=2){
index = i;
break;
}
}
if (index == -1){
this.tipAdNode.active = false;
this.tipNoAdNode.active = true;
this.answerNode.active = false;
}
else {
this.tipAdNode.active = true;
this.tipNoAdNode.active = false;
this.answerNode.active = false;
}
if (Common.subLevel == this.tmpUnlockSubLevel){
}
}
else {
this.tipAdNode.active = true;
this.tipNoAdNode.active = false;
this.answerNode.active = false;
}
return;
}
if (answer){
let answerIndex = answer[Common.subLevel];
console.log(answerIndex, Common.subLevel, 'answerIndex+++++++++++++======')
if (answerIndex == 1){
this.tipAdNode.active = false;
this.tipNoAdNode.active = true;
this.answerNode.active = false;
}
else if(answerIndex == 2) {
this.tipAdNode.active = false;
this.tipNoAdNode.active = false;
this.answerNode.active = true;
}else{
this.tipAdNode.active = true;
this.tipNoAdNode.active = false;
this.answerNode.active = false;
}
}
else{
this.tipAdNode.active = true;
this.tipNoAdNode.active = false;
this.answerNode.active = false;
}
}
showTipAnswer(){
Common5.getPrefabFromBundle("ZoomGame","prefab/view/tipPrefab",null,(node)=>{
})
}
finishThisGame(){
// this.reset();
this.isFinish = true;
// this.node.scale = 0;
}
updateTimeProg(){
this.timeSpript.fillRange = this.lefTime/this.allTime;
let secondStr = "";
let second = this.lefTime % 60;
if (second < 10){
secondStr = "0" + second;
}
else {
secondStr = second.toString();
}
this.timeLabel.string = Math.floor(this.lefTime/60) + ":" + secondStr;
}
reset(){
TTAPI.startRecord_custom();
Common.SpeTip = "";
MainScene.ins.levelNode.active = false;
if (Common5.selectGameInfo.gameTitle && Common5.selectGameInfo.gameTitle!= ""){
this.titleLabel.string = Common5.selectGameInfo.gameTitle;
this.titleLabel.node.parent.active = true;
}
else {
this.titleLabel.node.parent.active = false;
}
if (Common5.selectGameInfo.isNeedTime){
this.timeNode.active = true;
this.addtimeBtn.active = true;
this.lefTime = Common5.selectGameInfo.timeInit;
this.allTime = Common5.selectGameInfo.timeInit;
console.log(this.lefTime,this.allTime)
this.updateTimeProg();
this.resetTime();
}else {
this.timeNode.active = false;
this.addtimeBtn.active = false;
}
this.node.active = true;
this.updateTishiBtn();
this.finishSub = [];
// this.showFail();
this.preLoadNext();
}
preLoadNext(){
let nextLevel = -1;
for (let i = 0; i < Common5.gameConfig.GameAllType[Common5.curWordGameType].Levels.length; i++){
let level = Common5.gameConfig.GameAllType[Common5.curWordGameType].Levels[i];
if (level == Common5.selectGameNum){
if (i < (Common5.gameConfig.GameAllType[Common5.curWordGameType].Levels.length-1)){
nextLevel = Common5.gameConfig.GameAllType[Common5.curWordGameType].Levels[i+1];
break;
}
}
}
if (nextLevel!=-1){
console.log(Common5.gameConfig.zmGameConfig[nextLevel].bundle);
let bundle = cc.assetManager.loadBundle(Common5.gameConfig.zmGameConfig[nextLevel].bundle,(err,bundle)=>{
bundle.load(Common5.gameConfig.zmGameConfig[nextLevel].bundle, cc.Prefab, () => {
console.log(nextLevel + " preloadSuccess!")
})
})
if (Common5.gameConfig.zmGameConfig[nextLevel].subbundle && Common5.gameConfig.zmGameConfig[nextLevel].subbundle!=""){
let subbundle = cc.assetManager.loadBundle(Common5.gameConfig.zmGameConfig[nextLevel].subbundle,(err,subbundle)=>{
subbundle.load(Common5.gameConfig.zmGameConfig[nextLevel].suburl, cc.Prefab, () => {
console.log(nextLevel + " subbundle preloadSuccess!")
})
})
}
// cc.assetManager.getBundle(Common5.gameConfig.zmGameConfig[nextLevel].bundle);
}
}
resetTime(){
this.isFinish = false
this.schedule(this.refreshTime,1)
}
stopTime(){
this.unschedule(this.refreshTime);
}
clickBack(event,isReport){
// this.prefabNode.removeAllChildren();
// this.node.active = false;
if(this.isExitTip){
return
}
this.isExitTip = true
Common5.getPrefabFromBundle("ZoomGame","prefab/view/ExitTip",null, ()=>{
this.scheduleOnce(()=>{
this.isExitTip = false
},0.1)
});
}
clickBackTimeOut(event,isReport){
// this.prefabNode.removeAllChildren();
// this.node.active = false;
Common5.getPrefabFromBundle("ZoomGame","prefab/view/GameFailView");
}
exitGame(){
console.log("1111")
this.prefabNode.destroyAllChildren();
this.prefabNode.removeAllChildren();
this.node.active = false;
MainScene.ins.levelNode.active = true;
this.stopTime();
Common5.stopMusic();
this.scheduleOnce(()=>{
Common5.playMusic("bg");
},0.1)
}
setAnswerHide(){
}
addtimeClick(){
Common5.playEffect("ui");
let tab = {
onClose: (finish) => {
if (finish) {
GameReport.ADReport('加时',Common5.selectGameInfo.title2,1)
if(Common5.selectGameInfo){
Common5.ReportDY("inLevel", Common5.selectGameInfo.title2 + "-AD-加时");
}
this.lefTime = this.lefTime +Common5.selectGameInfo.timeVideoAdd;
this.allTime += Common5.selectGameInfo.timeVideoAdd;
EventMgr.emitEvent_custom(ryw_Event.addTimeSucc);
return;
}
else {
GameReport.ADReport('加时',Common5.selectGameInfo.title2,0)
// this.node.removeFromParent();
Common5.showTips_custom("广告未观看完");
}
}, onFailed: () => {
}
}
AppPlatform.playVideo_custom(tab)
}
setGameTitle(gameTitle){
this.titleLabel.node.parent.active = true;
this.titleLabel.string = gameTitle;
}
playSuccessDadian() {
let title = Common5.selectGameInfo.title2
console.log(title + "-成功通关")
Common5.ReportDY("inLevel", title + "-成功通关");
}
onRestartCallFunc(){
if (Common5.selectGameInfo.subbundle !="" && Common5.selectGameInfo.subbundle != undefined){
let subbundle = cc.assetManager.loadBundle(Common5.selectGameInfo.subbundle,(err,subbundle)=>{
cc.assetManager.loadBundle(Common5.selectGameInfo.bundle, function (err: Error, bundle: cc.AssetManager.Bundle) {
MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode").destroyAllChildren();
MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode").removeAllChildren();
Common5.getPrefabFromBundle(Common5.selectGameInfo.bundle,Common5.selectGameInfo.url,MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode"),(prefab)=>{
// prefab.width = Game.ins.maskNode.width;
// prefab.height = Game.ins.maskNode.width;
if (Common5.selectGameNum != 0){
User.setFirstIn(false);
}
if (Common5.selectGameInfo.isTer){
Common5.getPrefabFromBundle("ZoomGame","prefab/view/TerrTip");
}
User.setLeveNum_custom(Common5.selectGameNum);
// prefab.scale = Game.ins.maskNode.width/prefab.width;
// prefab.setPosition(0,0);
// console.log("prefab.width",prefab.width,prefab.height,prefab.position,MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode").position)
Common5.hideTips_custom();
Game.ins.reset();
MainScene.ins.isLoading = false;
})
});
})
}
else {
cc.assetManager.loadBundle(Common5.selectGameInfo.bundle, function (err: Error, bundle: cc.AssetManager.Bundle) {
MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode").destroyAllChildren();
MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode").removeAllChildren();
Common5.getPrefabFromBundle(Common5.selectGameInfo.bundle,Common5.selectGameInfo.url,MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode"),(prefab)=>{
// prefab.width = Game.ins.maskNode.width;
// prefab.height = Game.ins.maskNode.width;
if (Common5.selectGameNum != 0){
User.setFirstIn(false);
}
if (Common5.selectGameInfo.isTer){
Common5.getPrefabFromBundle("ZoomGame","prefab/view/TerrTip");
}
User.setLeveNum_custom(Common5.selectGameNum);
// prefab.scale = Game.ins.maskNode.width/prefab.width;
// prefab.setPosition(0,0);
// console.log("prefab.width",prefab.width,prefab.height,prefab.position,MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode").position)
Common5.hideTips_custom();
Game.ins.reset();
MainScene.ins.isLoading = false;
})
});
}
}
// update (dt) {}
}