import { _decorator, BoxCollider2D, Collider2D, Component, Contact2DType, EPhysics2DDrawFlags, log, Node, PhysicsSystem2D, Sprite, SpriteFrame } from 'cc'; import { CosntValue, Hs_ColliderType } from '../../Common/Scripts/CosntValue'; import { EventCustom } from '../../Common/Scripts/EventCustom'; const { ccclass, property } = _decorator; @ccclass('HsGoodsItem') export class HsGoodsItem extends Component { @property(SpriteFrame) spa: SpriteFrame = null; @property(SpriteFrame) spb: SpriteFrame = null; @property(SpriteFrame) spc: SpriteFrame = null; @property(SpriteFrame) spd: SpriteFrame = null; @property(SpriteFrame) spe: SpriteFrame = null; @property(SpriteFrame) spf: SpriteFrame = null; @property(SpriteFrame) spg: SpriteFrame = null; @property(SpriteFrame) sph: SpriteFrame = null; @property(SpriteFrame) spi: SpriteFrame = null; @property(SpriteFrame) spj: SpriteFrame = null; @property(SpriteFrame) spk: SpriteFrame = null; @property(SpriteFrame) spl: SpriteFrame = null; @property(SpriteFrame) spm: SpriteFrame = null; @property(SpriteFrame) spn: SpriteFrame = null; @property(SpriteFrame) spo: SpriteFrame = null; _goodType: number; set GoodType(a: number) { if (a < 5) { this._goodType = 1; this.getComponent(Collider2D).tag = Hs_ColliderType.Goods; let gt = CosntValue.randomInt(1, 10); switch (gt) { case 1: this.node.getComponent(Sprite).spriteFrame = this.spa; this._point = 10; break; case 2: this.node.getComponent(Sprite).spriteFrame = this.spb; this._point = 10; break; case 3: this.node.getComponent(Sprite).spriteFrame = this.spc; this._point = 10; break; case 4: this.node.getComponent(Sprite).spriteFrame = this.spd; this._point = 10; break; case 5: this.node.getComponent(Sprite).spriteFrame = this.spe; this._point = 10; break; case 6: this.node.getComponent(Sprite).spriteFrame = this.spf; this._point = 10; break; case 7: this.node.getComponent(Sprite).spriteFrame = this.spg; this._point = 10; break; case 8: this.node.getComponent(Sprite).spriteFrame = this.sph; this._point = 10; break; case 9: this.node.getComponent(Sprite).spriteFrame = this.spi; this._point = 10; break; case 10: this.node.getComponent(Sprite).spriteFrame = this.spj; this._point = 10; break; default: break; } } else { this._goodType = 2; this.getComponent(Collider2D).tag = Hs_ColliderType.OtherMan; let gt = CosntValue.randomInt(1, 5); switch (gt) { case 1: this.node.getComponent(Sprite).spriteFrame = this.spk; this._point = 10; break; case 2: this.node.getComponent(Sprite).spriteFrame = this.spl; this._point = 10; break; case 3: this.node.getComponent(Sprite).spriteFrame = this.spm; this._point = 10; break; case 4: this.node.getComponent(Sprite).spriteFrame = this.spn; this._point = 10; break; case 5: this.node.getComponent(Sprite).spriteFrame = this.spo; this._point = 10; break; default: break; } } } _point: number = 0; start() { // PhysicsSystem2D.instance.debugDrawFlags = EPhysics2DDrawFlags.Shape; let collider = this.getComponent(Collider2D); if (collider) { collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this); } } protected onDestroy(): void { this.node.getComponent(Collider2D).off(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this); } onBeginContact(selfCollider: Collider2D, otherCollider: Collider2D) { //玩家碰撞 if (otherCollider.tag == Hs_ColliderType.Player) { let e = new EventCustom("ContactSomething", true, this.node); this.node.dispatchEvent(e); } } init() { } update(deltaTime: number) { } }