Role.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { _decorator, CircleCollider2D, Collider, Collider2D, Component, Contact2DType, ERigidBody2DType, ICollisionEvent, IPhysics2DContact, Node, PhysicsSystem2D, RigidBody2D, Vec2, Vec3 } from 'cc';
  2. import { EventManager } from '../EventManager';
  3. const { ccclass, property } = _decorator;
  4. @ccclass('Role')
  5. export class Role extends Component {
  6. rigidBody: any;
  7. public start() {
  8. let collider = this.getComponent(Collider2D);
  9. if (collider) {
  10. collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
  11. }
  12. }
  13. onBeginContact(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {
  14. // 只在两个碰撞体开始接触时被调用一次
  15. switch (otherCollider.node.name) {
  16. case 'Top':
  17. case 'Bottom':
  18. case 'dici':
  19. EventManager.instance.et.emit(EventManager.EventType.Cut_haert);
  20. break;
  21. default:
  22. break;
  23. }
  24. }
  25. }