bullet.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { LQCollide } from "../../../lq_collide_system/lq_collide";
  2. import { LQCollideBase } from "../../../lq_collide_system/lq_collide_base";
  3. import { LQCollideInfoList } from "../../../lq_collide_system/lq_collide_config";
  4. import { MonsterModel } from "../monster/monsterModel";
  5. import { EffectMgr } from "../nest/effectMgr";
  6. const {ccclass, property, requireComponent} = cc._decorator;
  7. @ccclass
  8. @requireComponent(LQCollideBase)
  9. export default class bullet extends LQCollide {
  10. atk:number = 10;
  11. /*===========================自动绑定组件开始===========================*/
  12. /*自动生成*/
  13. @property({type:dragonBones.ArmatureDisplay, displayName:""})
  14. private $dragon_bone:dragonBones.ArmatureDisplay = null;
  15. /*===========================自动绑定组件结束===========================*/
  16. /*===========================自动生成按钮事件开始==========================*/
  17. /*===========================自动生成按钮事件结束==========================*/
  18. protected onLoad(): void {
  19. this.$dragon_bone.playAnimation('appear', 1);
  20. this.$dragon_bone.addEventListener('complete', ()=>{
  21. this.$dragon_bone.playAnimation('bullet_1', 0);
  22. });
  23. }
  24. public on_enter(collide: LQCollide): void {
  25. // cc.log(collide);
  26. if(collide.collide_group_index == LQCollideInfoList.enemy) {
  27. // cc.log('@@ -- ', collide.node.name);
  28. let worldPos = this.node.convertToWorldSpaceAR(cc.Vec2.ZERO);
  29. EffectMgr.inst.createHarmNum(worldPos, this.atk);
  30. let model = collide.node.getComponent(MonsterModel);
  31. model.beAttacked(this.atk);
  32. if(model.isOver()){
  33. collide.node.destroy();
  34. }
  35. }
  36. this.node.destroy();
  37. }
  38. setDirction(dir: cc.Vec2){
  39. let angle = cc.v2(0,1).signAngle(dir) / Math.PI * 180;
  40. this.node.angle = angle;
  41. }
  42. }