bullet.ts 1.9 KB

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