TipsManager.ts 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. // Learn TypeScript:
  2. // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
  3. // Learn Attribute:
  4. // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
  5. // Learn life-cycle callbacks:
  6. // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
  7. import { SingleClass } from "./SingleClass";
  8. import { App } from "./App";
  9. import { ERewardType, EConsume } from "../Framework/Const/EnumDefine";
  10. const { ccclass, property } = cc._decorator;
  11. @ccclass
  12. export default class TipsManager extends SingleClass {
  13. private hasShowTips: boolean = true;
  14. private hasShowRewardTips: boolean = true;
  15. public showmid(str: string, waitTime: number = 0.8) {
  16. if (!this.hasShowTips)
  17. return;
  18. this.hasShowTips = false;
  19. if (App.LayerManager.tipLayer && App.LayerManager.tipLayer.getChildByName("tipsBg")) {
  20. let bgnode = App.LayerManager.tipLayer.getChildByName("tipsBg");
  21. let nodeText = bgnode.getChildByName("tips");
  22. nodeText.getComponent(cc.Label).string = str;
  23. App.EffectUtils.smallToLarge(bgnode, waitTime, () => {
  24. this.hasShowTips = true;
  25. });
  26. } else {
  27. var nodeText = new cc.Node("tips");
  28. var showtext = nodeText.addComponent(cc.Label);
  29. var bgnode = new cc.Node("tipsBg");
  30. let tipsBg: cc.Sprite = bgnode.addComponent(cc.Sprite);
  31. cc.loader.loadRes("new_tips", cc.SpriteFrame, (err, spriteFrame) => {
  32. if (err) {
  33. console.error(err);
  34. return;
  35. }
  36. tipsBg.spriteFrame = spriteFrame;
  37. App.LayerManager.tipLayer && App.LayerManager.tipLayer.addChild(bgnode);
  38. bgnode.x = 0;
  39. bgnode.y = 0;
  40. bgnode.addChild(nodeText);
  41. showtext.string = str;
  42. showtext.fontFamily = "SimHei";
  43. showtext.fontSize = 30;
  44. showtext.enableBold = true;
  45. nodeText.color = new cc.Color(255, 255, 255);
  46. nodeText.anchorX = 0;
  47. nodeText.width = bgnode.width - 145;
  48. nodeText.height = bgnode.height;
  49. nodeText.y = 0;
  50. nodeText.x = -145;
  51. showtext.overflow = cc.Label.Overflow.CLAMP;
  52. showtext.horizontalAlign = cc.Label.HorizontalAlign.LEFT;
  53. showtext.verticalAlign = cc.Label.VerticalAlign.CENTER;
  54. App.EffectUtils.smallToLarge(bgnode, waitTime, () => {
  55. this.hasShowTips = true;
  56. });
  57. });
  58. }
  59. }
  60. public showReward(type: any[], data: any, waitTime: number = 0.5) {
  61. if (!this.hasShowRewardTips)
  62. return;
  63. this.hasShowRewardTips = false;
  64. let rewardTips = null;
  65. // if (App.LayerManager.lockLayer && App.LayerManager.lockLayer.getChildByName("rewardTips")) {
  66. // rewardTips = App.LayerManager.lockLayer.getChildByName("rewardTips");
  67. // this.setRewardImg(rewardTips, type);
  68. // this.setRewardNum(rewardTips, data);
  69. // App.EffectUtils.bottomToTop(rewardTips, waitTime, () => {
  70. // this.hasShowRewardTips = true;
  71. // });
  72. // } else {
  73. App.LayerManager.lockLayer.addComponent(cc.Layout);
  74. App.LayerManager.lockLayer.getComponent(cc.Layout).type = cc.Layout.Type.HORIZONTAL;
  75. App.LayerManager.lockLayer.getComponent(cc.Layout).spacingX = 80;
  76. App.LayerManager.lockLayer.width = 0;
  77. App.LayerManager.lockLayer.height = 0;
  78. App.LayerManager.lockLayer.y = 0;
  79. cc.loader.loadRes("prefabs/rewardTips", cc.Prefab, (err, prefab) => {
  80. if (err) {
  81. console.error(err);
  82. return;
  83. }
  84. for (let i = 0; i < type.length; i++) {
  85. rewardTips = cc.instantiate(prefab);
  86. rewardTips.name = "rewardTips" + i;
  87. this.setRewardImg(rewardTips, type[i]);
  88. this.setRewardNum(rewardTips, data[type[i]]);
  89. App.LayerManager.lockLayer && App.LayerManager.lockLayer.addChild(rewardTips);
  90. rewardTips.y = 20;
  91. App.LayerManager.lockLayer.x = -20 * (type.length - 1);
  92. }
  93. App.EffectUtils.bottomToTop(App.LayerManager.lockLayer, waitTime, () => {
  94. this.hasShowRewardTips = true;
  95. App.LayerManager.lockLayer.removeAllChildren();
  96. });
  97. });
  98. }
  99. //设置获奖的图片
  100. private setRewardImg(node: cc.Node, type: EConsume) {
  101. let rewardImgArray = {
  102. "1": "icon.png",
  103. "201": "hall_icon_weishi_new.png",
  104. "203": "clear1.png",
  105. "202": "feipan1.png",
  106. "101": "qinmidu.png",
  107. "102": "mp_t3",
  108. "103": "mp_t2",
  109. "104": "mp_t1",
  110. }
  111. cc.loader.loadRes(rewardImgArray[type], cc.SpriteFrame, (err, SpriteFrame) => {
  112. if (err) {
  113. console.error(err);
  114. return;
  115. }
  116. node.getChildByName("image").getComponent(cc.Sprite).spriteFrame = SpriteFrame;
  117. });
  118. // let rewardImgArray = ["icon.png", "hall_icon_weishi_new.png", "clear1.png", "feipan1.png", "qinmidu.png"];
  119. }
  120. //设置获奖的数量
  121. private setRewardNum(node: cc.Node, sum: string) {
  122. node.getChildByName("image").getChildByName("label").getComponent(cc.Label).string = '+' + sum;
  123. }
  124. }