NewPackOpenedLayer.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { _decorator, Component, Node, MeshRenderer, instantiate } from 'cc';
  2. import platformSystem from '../platform/platformSystem';
  3. import BasePanel from '../core/component/BasePanel';
  4. import { audioMgr } from '../core/manager/AudioManager';
  5. import Data from '../core/manager/Data';
  6. import { ResUtil } from '../core/utils/ResUtil';
  7. import { GameConst } from '../core/common/GameConst';
  8. import { levelsData } from '../user/LevelsData';
  9. const { ccclass, property } = _decorator;
  10. @ccclass('NewPackOpenedLayer')
  11. export class NewPackOpenedLayer extends BasePanel {
  12. onBtnClicked(event: any, customEventData: any) {
  13. audioMgr.playOneShot(GameConst.audios.btnclick);
  14. this.close();
  15. }
  16. show() {
  17. platformSystem.platform.showInterstitialAd();
  18. let node_items = this.GetGameObject("node_items");
  19. node_items.children.map(a => a.active = false);
  20. let ids = [];
  21. let OpenItems:Array<any> = levelsData.getModesNames();
  22. for (var i = Data.user.openIndex; i < Data.user.openIndex + 8 && i < OpenItems.length; ++i) {
  23. ids.push(OpenItems[i]);
  24. }
  25. for (var i = 0; i < node_items.children.length; ++i) {
  26. let child = node_items.children[i];
  27. child.active = true;
  28. this.setMesh(child, ids[i]);
  29. }
  30. Data.user.openIndex += 8;
  31. Data.user.openIndex = Math.min(Data.user.openIndex, OpenItems.length - 1);
  32. Data.save();
  33. }
  34. private setMesh(node: Node, name: string) {
  35. ResUtil.loadModelPrefabName(name).then((res: any) => {
  36. let tmp: Node = instantiate(res);
  37. let render = tmp.getComponentInChildren(MeshRenderer) as MeshRenderer;
  38. let mesh = render.mesh;
  39. node.scale = render.node.scale.multiplyScalar(100);
  40. node.getComponent(MeshRenderer).mesh = mesh;
  41. tmp.destroy();
  42. })
  43. }
  44. }