protected override void _SetAbility(Entity.AbilitySet abilitys) { _MoverAbility = new ActorMoverAbility(_Property.Direction, _Property.Position.X, _Property.Position.Y); _MoverAbility.ActionEvent += _OnAction; _MoverAbility.PositionEvent += _OnPosition; abilitys.AttechAbility<IMoverAbility>(_MoverAbility); _QuadTreeObjectAbility = new PhysicalAbility(new Regulus.Types.Rect(_Property.Position.X - _BodyWidth / 2, _Property.Position.Y - _BodyHeight / 2, _BodyWidth, _BodyHeight), this); abilitys.AttechAbility<PhysicalAbility>(_QuadTreeObjectAbility); }
public StaticEntity(Regulus.Utility.OBB obb, Guid id) : base(id) { _Obb = obb; var a = (float)((_Obb.getRotation() - 180) * Math.PI / 180); var s = (float)Math.Sin(a); var c = (float)Math.Cos(a); s = s < 0 ? -s : s; c = c < 0 ? -c : c; var w = _Obb.getHeight() * s + _Obb.getWidth() * c; var h = _Obb.getHeight() * c + _Obb.getWidth() * s; var x = _Obb.getX() - w / 2; var y = _Obb.getY() - h / 2; _QuadTreeObjectAbility = new PhysicalAbility(new Regulus.Types.Rect(x,y,w,h) , this); }