public BEnemyship(Node node, Vector2 pos,List<BWeapon> weapons,Layer weaponLayer, string path) : base(node,pos,25,25, ContactType.Enemy,null,null,path) { this.weaponLayer =weaponLayer; //this.ToContact //this.beContact //随机AI间隔 float rnd = Maths.Rnd.Next(1,5)*0.1f; aiticker = new Ticker(rnd); //随机锁敌半径 lockRadius =Maths.Rnd.Next(500,900); //随机追踪间隔 trackCd = new Countdown(Maths.Rnd.Next(10,50)*0.1f); this.Speed = 3.2f; inertiaSpeed = 1.83f; TrackAction = new BTracker (Body, ref this.Speed, 0.025f, 0.0025f); lockRadius *= lockRadius; HP = 220; for(int i= 0;i < weapons.Count;i++) { weapons[i].ChangeMaster(this); } this.Weapon = new BWeaponSystem(this,weapons,weaponLayer); }
public BMissile(Node node,Vector2 pos,BWarship target,float Speed,float rots,float rotsInc, float w, float h, WeapRanType wrt, ContactType ctype,float att, string path) : base(node,0,0,pos,w,h,ctype,null,null) { this.Att =att; this. Speed = Speed; this.target = target; body = new SpriteX(path,pos); body.ChangeFather(this); body.CenterSprite(TRS.Local.Center); body.Scale = new Vector2(0.4f,0.4f); tracker =new BTracker(body,ref this.Speed,rots,rotsInc); tracker.SetTarger(target.GetPosition()); body.Color = BWarship.ColorID; maxShootDis = BWeapon.GetRangeByType(wrt); }