123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- import { find, Node, sp, _decorator } from 'cc';
- import { BaseLayer } from '../../common/BaseLayer';
- import { cocosUtil } from '../../utils/cocosUtil';
- import { constants } from '../data/constants';
- import { localText } from '../data/localText';
- import { msgac } from '../data/msgac';
- import { audioManager } from '../manager/audioManager';
- import { levelManager } from '../manager/levelManager';
- import { sdkManager } from '../manager/sdkManager';
- import { playerModel } from '../model/playerModel';
- import { FlutterEffect } from './effect/FlutterEffect';
- const { ccclass, property } = _decorator;
- @ccclass('StartLayer')
- export class StartLayer extends BaseLayer {
- coinNode: Node;
- levelNode: Node;
- itemList: Node;
- bossEyeNode: Node;
- roleBodySkeleon: sp.Skeleton;
- turnTableNode: Node;
- turnTableShine: Node;
- startTextHint: Node;
- btnLevelEsp: Node;
- btnSkip: Node;
- audioCloseNode: Node;
- audioOpenNode: Node;
- onLoad() {
- super.onLoad();
- this.coinNode = this.getNodeByPath("coinLayer/num");
- this.levelNode = this.getNodeByPath("level/level");
- this.audioCloseNode = this.getNodeByPath("btnAudio/close");
- this.audioOpenNode = this.getNodeByPath("btnAudio/open");
- this.roleBodySkeleon = this.getNodeByPath("tribe/body").getComponent(sp.Skeleton);
- this.turnTableNode = this.getNodeByPath("btns/btnTurnTable/turnTable");
- this.turnTableShine = this.getNodeByPath("btns/btnTurnTable/bg");
- this.itemList = this.getNodeByPath("level/itemList");
- let chs = this.itemList.children;
- this.bossEyeNode = find("eye", chs[chs.length - 1]);
- this.getNodeByPath("cloundLayer").addComponent(FlutterEffect);
- this.startTextHint = this.getNodeByPath("gameStart");
- this.btnLevelEsp = this.getNodeByPath("btnLevelEsp");
- this.btnSkip = this.getNodeByPath("btnSkip");
- this.initUI();
- if (this.obj && this.obj.openLevelEspSelectLayer) {
- this.openLayer(constants.layers.LevelEspSelectLayer);
- }
- audioManager.instance.playMusic(constants.audioNames.bgm);
- sdkManager.instance.showBannerAd();
- sdkManager.instance.showCustomAdCommon();
- sdkManager.instance.onStartLayerShow();
- sdkManager.instance.sendEvent("进入游戏主界面");
- }
- start() {
- this.scheduleOnce(() => {
- let coinLayer = this.getNodeByPath("coinLayer");
- playerModel.instance.coinPosEnd = cocosUtil.convertToWorldSpace(coinLayer);
- });
- }
- onEnable() {
- this.addEventArr([
- msgac.openLevelLayer,
- msgac.coinChange,
- ]);
- }
- onDisable() {
- this.removeEventArr([
- msgac.openLevelLayer,
- msgac.coinChange,
- ]);
- }
- initUI() {
- this.initLocaltext();
- this.initEffect();
- this.refreshCoinLayer();
- this.refreshBtnAudio();
- this.refreshRoleBodyLayer();
- let level = playerModel.instance.getLevel();
- this.setString(this.levelNode, level);
- level = level % 10;
- if (level == 0) {
- level = 10;
- }
- let chs = this.itemList.children;
- for (let i = 0, len = chs.length; i < len; i++) {
- let tmp = i + 1;
- if (tmp == 10) {
- continue;
- }
- let node = chs[i];
- let noNode = find("no", node);
- let hasNode = find("has", node);
- let currentNode = find("current", node);
- noNode.active = false;
- hasNode.active = false;
- currentNode.active = false;
- if (level > tmp) {
- hasNode.active = true;
- } else if (level == tmp) {
- currentNode.active = true;
- } else {
- noNode.active = true;
- }
- }
- }
- refreshRoleBodyLayer() {
- let skinName = levelManager.instance.getSkinName(playerModel.instance.getEquipWeaponId(), playerModel.instance.getEquipDressId());
- this.roleBodySkeleon.setSkin(skinName);
- }
- initLocaltext() {
- this.setString(this.startTextHint, localText.textObj.clickGameStart);
- }
- initEffect() {
- cocosUtil.tweenScaleBreath(this.startTextHint);
- cocosUtil.tweenShake(this.btnLevelEsp);
- cocosUtil.tweenScaleBreath(this.btnSkip);
- cocosUtil.tweenScaleBreath(this.turnTableShine, 0.3);
- cocosUtil.tweenRotate(this.turnTableNode);
- cocosUtil.tweenBlink(this.bossEyeNode);
- }
- refreshBtnAudio() {
- if (audioManager.instance.getMusiceVolume() > 0) {
- this.audioCloseNode.active = false;
- this.audioOpenNode.active = true;
- } else {
- this.audioCloseNode.active = true;
- this.audioOpenNode.active = false;
- }
- }
- refreshCoinLayer() {
- this.setString(this.coinNode, playerModel.instance.getCoin());
- }
- openLevelLayerRet(data: object) {
- this.openLayer(constants.layers.LevelLayer, data);
- this.closeLayer();
- }
- coinChangeRet(data: object) {
- this.refreshCoinLayer();
- };
- process_event(event: any) {
- let ac = event.ac;
- let data = event.data;
- switch (ac) {
- case msgac.coinChange:
- this.coinChangeRet(data);
- break;
- case msgac.openLevelLayer:
- this.openLevelLayerRet(data);
- break;
- default:
- break;
- }
- }
- onButtonClick(node: Node, name: string) {
- switch (name) {
- case "btnCoinAdd":
- this.onClickBtnCoinAdd(node);
- break;
- case "btnSkin":
- this.onClickBtnSkin(node);
- break;
- case "btnLevelEsp":
- this.onClickBtnLevelEsp(node);
- break;
- case "btnTurnTable":
- this.onClickBtnTurnTable(node);
- break;
- case "btnAudio":
- this.onClickBtnAudio(node);
- break;
- case "bg":
- this.onClickBg(node);
- break;
- default:
- break;
- }
- }
- onClickBtnCoinAdd(node: Node) {
- this.openLayer(constants.layers.AdCoinLayer);
- }
- onClickBtnSkin(node: Node) {
- this.openLayer(constants.layers.SkinLayer);
- }
- onClickBtnLevelEsp(node: Node) {
- this.openLayer(constants.layers.LevelEspSelectLayer, null);
- }
- onClickBtnTurnTable(node: Node) {
- this.openLayer(constants.layers.TurnTableLayer);
- }
- onClickBtnAudio(node: Node) {
- audioManager.instance.switchIsMute();
- this.refreshBtnAudio();
- }
- onClickBg(node: Node) {
- let obj: any = {};
- obj.level = playerModel.instance.getLevel();
- this.openLayer(constants.layers.LevelLayer, obj);
- this.closeLayer();
- sdkManager.instance.sendEvent("开始游戏");
- }
- }
|