TipSystem.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. const { ccclass, property } = cc._decorator;
  2. @ccclass
  3. /**
  4. * 提示管理类
  5. * @author 邹勇
  6. */
  7. export default class TipSystem extends cc.Component {
  8. @property({ type: cc.Integer, displayName: "飘动时间" })
  9. private tween_time: number = 1;
  10. @property({ type: cc.Integer, displayName: "开始坐标x" })
  11. private src_x: number = 0;
  12. @property({ type: cc.Integer, displayName: "开始坐标y" })
  13. private src_y: number = 0;
  14. @property({ type: cc.Integer, displayName: "目标坐标x" })
  15. private tar_x: number = 0;
  16. @property({ type: cc.Integer, displayName: "目标坐标y" })
  17. private tar_y: number = 200;
  18. @property({ type: cc.Integer, displayName: "背景透明度" })
  19. private bg_opacity: number = 40;
  20. @property({ displayName: "背景颜色" })
  21. private bg_color = new cc.Color(200, 200, 200);
  22. @property({ displayName: "文本颜色" })
  23. private tip_color = new cc.Color(255, 255, 255);
  24. @property({ type: cc.Integer, displayName: "文本字体" })
  25. private tip_size: number = 40;
  26. onLoad() {
  27. mk.tip = this;
  28. }
  29. start() {
  30. }
  31. /**
  32. * 弹出tips
  33. * @param str
  34. */
  35. public async pop(str: string) {
  36. let node = await mk.pool.getPrefab("game/prefab/tips");
  37. let node_bg = node.getChildByName("bg");
  38. let node_lbl = node.getChildByName("lbl");
  39. let lbl = node_lbl.getComponent(cc.Label);
  40. // node_bg.color = this.bg_color;
  41. // node_bg.opacity = this.bg_opacity;
  42. // node_lbl.color = this.tip_color;
  43. lbl.fontSize = this.tip_size;
  44. lbl.string = str;
  45. node_bg.width = node_lbl.width + 20 < 200 ? 200 : node_lbl.width + 20;
  46. node.width = node_bg.width;
  47. node_bg.height = node_lbl.height + 2;
  48. node.parent = this.node;
  49. node.x = this.src_x;
  50. node.y = this.src_y;
  51. cc.tween(node)
  52. .to(this.tween_time, { x: this.tar_x, y: this.tar_y })
  53. .call(() => {
  54. mk.pool.return("tips", node);
  55. }, this)
  56. .start();
  57. }
  58. }