HsGoodsItem.ts 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. import { _decorator, BoxCollider2D, Collider2D, Component, Contact2DType, EPhysics2DDrawFlags, log, Node, PhysicsSystem2D, Sprite, SpriteFrame } from 'cc';
  2. import { CosntValue, Hs_ColliderType } from '../../Common/Scripts/CosntValue';
  3. import { EventCustom } from '../../Common/Scripts/EventCustom';
  4. const { ccclass, property } = _decorator;
  5. @ccclass('HsGoodsItem')
  6. export class HsGoodsItem extends Component {
  7. @property(SpriteFrame)
  8. spa: SpriteFrame = null;
  9. @property(SpriteFrame)
  10. spb: SpriteFrame = null;
  11. @property(SpriteFrame)
  12. spc: SpriteFrame = null;
  13. @property(SpriteFrame)
  14. spd: SpriteFrame = null;
  15. @property(SpriteFrame)
  16. spe: SpriteFrame = null;
  17. @property(SpriteFrame)
  18. spf: SpriteFrame = null;
  19. @property(SpriteFrame)
  20. spg: SpriteFrame = null;
  21. @property(SpriteFrame)
  22. sph: SpriteFrame = null;
  23. @property(SpriteFrame)
  24. spi: SpriteFrame = null;
  25. @property(SpriteFrame)
  26. spj: SpriteFrame = null;
  27. @property(SpriteFrame)
  28. spk: SpriteFrame = null;
  29. @property(SpriteFrame)
  30. spl: SpriteFrame = null;
  31. @property(SpriteFrame)
  32. spm: SpriteFrame = null;
  33. @property(SpriteFrame)
  34. spn: SpriteFrame = null;
  35. @property(SpriteFrame)
  36. spo: SpriteFrame = null;
  37. _goodType: number;
  38. set GoodType(a: number) {
  39. if (a < 5) {
  40. this._goodType = 1;
  41. this.getComponent(Collider2D).tag = Hs_ColliderType.Goods;
  42. let gt = CosntValue.randomInt(1, 10);
  43. switch (gt) {
  44. case 1:
  45. this.node.getComponent(Sprite).spriteFrame = this.spa;
  46. this._point = 10;
  47. break;
  48. case 2:
  49. this.node.getComponent(Sprite).spriteFrame = this.spb;
  50. this._point = 10;
  51. break;
  52. case 3:
  53. this.node.getComponent(Sprite).spriteFrame = this.spc;
  54. this._point = 10;
  55. break;
  56. case 4:
  57. this.node.getComponent(Sprite).spriteFrame = this.spd;
  58. this._point = 10;
  59. break;
  60. case 5:
  61. this.node.getComponent(Sprite).spriteFrame = this.spe;
  62. this._point = 10;
  63. break;
  64. case 6:
  65. this.node.getComponent(Sprite).spriteFrame = this.spf;
  66. this._point = 10;
  67. break;
  68. case 7:
  69. this.node.getComponent(Sprite).spriteFrame = this.spg;
  70. this._point = 10;
  71. break;
  72. case 8:
  73. this.node.getComponent(Sprite).spriteFrame = this.sph;
  74. this._point = 10;
  75. break;
  76. case 9:
  77. this.node.getComponent(Sprite).spriteFrame = this.spi;
  78. this._point = 10;
  79. break;
  80. case 10:
  81. this.node.getComponent(Sprite).spriteFrame = this.spj;
  82. this._point = 10;
  83. break;
  84. default:
  85. break;
  86. }
  87. } else {
  88. this._goodType = 2;
  89. this.getComponent(Collider2D).tag = Hs_ColliderType.OtherMan;
  90. let gt = CosntValue.randomInt(1, 5);
  91. switch (gt) {
  92. case 1:
  93. this.node.getComponent(Sprite).spriteFrame = this.spk;
  94. this._point = 10;
  95. break;
  96. case 2:
  97. this.node.getComponent(Sprite).spriteFrame = this.spl;
  98. this._point = 10;
  99. break;
  100. case 3:
  101. this.node.getComponent(Sprite).spriteFrame = this.spm;
  102. this._point = 10;
  103. break;
  104. case 4:
  105. this.node.getComponent(Sprite).spriteFrame = this.spn;
  106. this._point = 10;
  107. break;
  108. case 5:
  109. this.node.getComponent(Sprite).spriteFrame = this.spo;
  110. this._point = 10;
  111. break;
  112. default:
  113. break;
  114. }
  115. }
  116. }
  117. _point: number = 0;
  118. start() {
  119. // PhysicsSystem2D.instance.debugDrawFlags = EPhysics2DDrawFlags.Shape;
  120. let collider = this.getComponent(Collider2D);
  121. if (collider) {
  122. collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
  123. }
  124. }
  125. protected onDestroy(): void {
  126. this.node.getComponent(Collider2D).off(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
  127. }
  128. onBeginContact(selfCollider: Collider2D, otherCollider: Collider2D) {
  129. //玩家碰撞
  130. if (otherCollider.tag == Hs_ColliderType.Player) {
  131. let e = new EventCustom("ContactSomething", true, this.node);
  132. this.node.dispatchEvent(e);
  133. }
  134. }
  135. init() {
  136. }
  137. update(deltaTime: number) {
  138. }
  139. }