TowerMgr.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { _decorator, instantiate, log, Prefab, Sprite, Vec2, Vec3 } from 'cc';
  2. import { ModulerBase } from './ModulerBase';
  3. import { GameMgr } from './GameMgr';
  4. import { MapMgr } from './MapMgr';
  5. import { resMgr } from '../../Frames/ResourcesMgr';
  6. import { TowerData } from '../../DataItem/ItemData';
  7. import { dataMgr } from '../../Frames/DataManager';
  8. import { Tower } from '../Tower';
  9. import { ExpandTower, LaserTower, MShootTower, ShootTower, StickTower } from './InsTower';
  10. const { ccclass, property } = _decorator;
  11. @ccclass('TowerMgr')
  12. export class TowerMgr extends ModulerBase {
  13. // @property(Prefab)
  14. // pre: Prefab = null;
  15. start() {
  16. //GameMgr.Instance.getModuler(MapMgr).test();
  17. //this.getModuler(MapMgr).test();
  18. }
  19. creatTower(pos: Vec3, data: TowerData) {
  20. //const data: TowerData = dataMgr.getData(id, "TowerDt");
  21. const node = instantiate(resMgr.getPrefab("Tower"));
  22. //const node = instantiate(resMgr.getPrefab("Tower"));
  23. //const tower = node.getComponent(Tower);
  24. let tower: Tower;
  25. switch (data.fireType) {
  26. case "shoot":
  27. tower = node.addComponent(ShootTower);
  28. break;
  29. case "expand":
  30. tower = node.addComponent(ExpandTower);
  31. break;
  32. case "mshoot":
  33. tower = node.addComponent(MShootTower);
  34. break;
  35. case "laser":
  36. tower = node.addComponent(LaserTower);
  37. break;
  38. case "stick":
  39. tower = node.addComponent(StickTower);
  40. break;
  41. default:
  42. break;
  43. }
  44. node.parent = this.node;
  45. tower.init(data, pos);
  46. }
  47. protected clearSelf(): void {
  48. }
  49. bTouchTower(pos: Vec2) {
  50. for (const towerNode of this.node.children) {
  51. const tower: Tower = towerNode.getComponent(Tower);
  52. if (tower.bTouch(pos)) {
  53. return true;
  54. }
  55. }
  56. return false;
  57. }
  58. update(deltaTime: number) {
  59. }
  60. }