public override void OnInitialize(EntityManager manager) { PhysicsBody = BodyFactory.CreateCircle(this.GDManager().PhysicsWorld, ConvertUnits.ToSimUnits(Scale * BULLET_DIAMETER / 2), 1, ConvertUnits.ToSimUnits(BulletPosition), BodyType.Dynamic, this); PhysicsBody.LinearVelocity = ConvertUnits.ToSimUnits(initialVelocity); PhysicsBody.CollidesWith = Category.All; PhysicsBody.IsBullet = true; PhysicsBody.Restitution = 0.95f; PhysicsBody.AngularDamping = 0.5f; PhysicsBody.Friction = 0.2f; PhysicsBody.LinearDamping = 0f; PhysicsBody.OnCollision += OnCollision; PhysicsBody.AngularVelocity = FloatMath.GetRangedRandom(-FloatMath.PI, +FloatMath.PI); //TODO Remove all angular calculations? (-> more consistency and faster calc?) //Body.Mass = Scale * Scale; // Weight dependent on size }
public override void OnInitialize(EntityManager manager) { // }
public override void OnInitialize(EntityManager manager) { controller = Fraction.CreateController(this.GDOwner(), this); PhysicsBody = BodyFactory.CreateBody(this.GDManager().PhysicsWorld, ConvertUnits.ToSimUnits(Center), 0, BodyType.Static); PhysicsFixtureBase = FixtureFactory.AttachCircle( ConvertUnits.ToSimUnits(Scale * CANNON_DIAMETER / 2), 1, PhysicsBody, Vector2.Zero, this); PhysicsFixtureBarrel = FixtureFactory.AttachRectangle( ConvertUnits.ToSimUnits(Scale * BARREL_WIDTH), ConvertUnits.ToSimUnits(Scale * BARREL_HEIGHT), 1, new Vector2(ConvertUnits.ToSimUnits(Scale * CANNON_DIAMETER / 2), 0), PhysicsBody, this); }
public abstract void OnInitialize(EntityManager manager);