CardMgr.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import { _decorator, Component, Node, Sprite, UITransform, Vec2, Vec3, view } from 'cc';
  2. import { ModulerBase } from './ModulerBase';
  3. import { GameInfo } from '../../GameInfo';
  4. import { LevelData, TowerData } from '../../DataItem/ItemData';
  5. import { dataMgr } from '../../Frames/DataManager';
  6. import { resMgr } from '../../Frames/ResourcesMgr';
  7. const { ccclass, property } = _decorator;
  8. @ccclass('CardMgr')
  9. export class CardMgr extends ModulerBase {
  10. private _cards: {node: Node, data: TowerData}[] = [];
  11. init(): void {
  12. //显示有哪些卡片可用
  13. const id: number = GameInfo.Instance.CurTheme * 1000 + GameInfo.Instance.CurLv;
  14. const data: LevelData = dataMgr.getData(id, "LevelDt");
  15. for(const id of data.towerid){
  16. const node = new Node();
  17. const towerDt: TowerData = dataMgr.getData(id, "TowerDt");
  18. node.addComponent(Sprite).spriteFrame =
  19. resMgr.getSpriteFrame(towerDt.cardImg[1]);
  20. node.parent = this.node.getChildByName("Content");
  21. this._cards.push({node:node, data: towerDt});
  22. }
  23. }
  24. start() {
  25. }
  26. update(deltaTime: number) {
  27. }
  28. touchCard(pos: Vec2):TowerData{
  29. for(const card of this._cards){
  30. const box = card.node.getComponent(UITransform).getBoundingBoxToWorld();
  31. if(box.contains(pos)){
  32. this.hide();
  33. return card.data;
  34. }
  35. }
  36. this.hide();
  37. return null;;
  38. }
  39. //当前卡片是否显示
  40. isShow(){
  41. return this.node.active;
  42. }
  43. show(pos: Vec3){
  44. //view.getVisibleSize().width;
  45. //view.getVisibleSize().height;
  46. // if(this.node.active){
  47. // this.hide();
  48. // return true;
  49. // }
  50. this.node.setPosition(pos);
  51. this.node.active = true;
  52. }
  53. hide(){
  54. this.node.active = false;
  55. }
  56. }