public override void Construct() { Demo.Window.Title = "Friction Demo"; Demo.Camera3D.Position = new Vector3(-46.62277f, 105.9008f, 79.68979f); Demo.Camera3D.Target = new Vector3(-46.25956f, 105.3427f, 78.94375f); ConstructGround(23); Body3D body3D = Body3DFactory.CreateBody3D( _leftBlock, Demo.World3D.World2D, Demo.GraphicsDevice, new Vector2(-59.15f, 5.9f), BodyType.Static); body3D.Body2D.SetCollisionCategories(Category.Cat31); Demo.World3D.AddBody3D(body3D); body3D = Body3DFactory.CreateBody3D( _rightBlock, Demo.World3D.World2D, Demo.GraphicsDevice, new Vector2(59.15f, 5.9f), BodyType.Static); body3D.Body2D.SetCollisionCategories(Category.Cat31); Demo.World3D.AddBody3D(body3D); ConstructRamps(); }
protected override void LoadContent() { arch = Content.Load <Model>("arch"); sphere = Content.Load <Model>("sphere"); Vector2 archPosition = new Vector2(0f, -1f); Body3D arch3D = Body3DFactory.CreateBody3D( arch, world3D.World2D, GraphicsDevice, archPosition, BodyType.Static, basicEffectParams: effectParams); world3D.AddBody3D(arch3D); Vector2 spherePosition = new Vector2(0f, 5f); Body3D sphere3D = Body3DFactory.CreateBody3D( sphere, world3D.World2D, GraphicsDevice, spherePosition, basicEffectParams: effectParams); sphere3D.Body2D.SetRestitution(0.8f); sphere3D.Body2D.ApplyAngularImpulse(14f); world3D.AddBody3D(sphere3D); }
private void ConstructEnvironment() { int groundLength = 51; ConstructGround(groundLength); Body3D blockLeft = Body3DFactory.CreateBody3D( Demo.Content.Load <Model>("Models/groundBlockLongLeft"), Demo.World3D.World2D, Demo.GraphicsDevice, new Vector2(-129.15f, 5.9f), BodyType.Static); Demo.World3D.AddBody3D(blockLeft); Body3D blockRight = Body3DFactory.CreateBody3D( Demo.Content.Load <Model>("Models/groundBlockLongRight"), Demo.World3D.World2D, Demo.GraphicsDevice, new Vector2(129.15f, 5.9f), BodyType.Static); Demo.World3D.AddBody3D(blockRight); _backgroundWall = Demo.Content.Load <Model>("Models/Decorations/goldWall"); for (int i = -groundLength / 3; i < groundLength / 3; i++) { Demo.World3D.AddBackdrop3D(new Backdrop3D(_backgroundWall, new Vector3(i * 15f, 0f, -15f))); } }
private void AddBall(float restitution, float positionZ, float positionX, Category collisionCategory) { Body body = new Body(); body.CreateCircle(1f, 1f); body.SetRestitution(restitution); body.SetCollidesWith(collisionCategory); Body3D body3D = Body3DFactory.CreateBody3D(_ballModel, Demo.World3D.World2D, body, new Vector2(positionX, 5f)); body3D.PositionZ = positionZ; body3D.Body2D.ApplyLinearImpulse(Vector2.One * 10f); body3D.Body2D.ApplyAngularImpulse(-40f); Demo.World3D.AddBody3D(body3D); }
private void AddCube(float friction, float positionZ, float positionX, Category collisionCategory) { Body body = new Body(); body.CreateRectangle(2f, 2f, 1f, Vector2.Zero); body.SetFriction(friction); body.SetCollidesWith(collisionCategory); Body3D body3D = Body3DFactory.CreateBody3D( _cubeModel, Demo.World3D.World2D, body, new Vector2(positionX, 100f)); body3D.PositionZ = positionZ; Demo.World3D.AddBody3D(body3D); }
protected override void LoadContent() { ground = Content.Load <Model>("ground"); cilinder = Content.Load <Model>("cilinder"); Vector2 groundPosition = new Vector2(0f, -1f); Body3D ground3D = Body3DFactory.CreateBody3D( ground, world3D.World2D, GraphicsDevice, groundPosition, BodyType.Static); world3D.AddBody3D(ground3D); Vector2 cilinderPosition = new Vector2(0f, 5f); Body3D cilinder3D = Body3DFactory.CreateBody3D( cilinder, world3D.World2D, GraphicsDevice, cilinderPosition); world3D.AddBody3D(cilinder3D); }
public override void Construct() { Demo.Window.Title = "Restitution Demo"; Demo.Camera3D.Position = new Vector3(22.12281f, 0.4714419f, 5.708819f); Demo.Camera3D.Target = new Vector3(21.21403f, 0.5188365f, 5.294256f); ConstructGround(); Body3D leftBlock = Body3DFactory.CreateBody3D( Demo.Content.Load <Model>("Models/groundBlockLongLeft"), Demo.World3D.World2D, Demo.GraphicsDevice, new Vector2(-24.15f, 5.9f), BodyType.Static); leftBlock.Body2D.SetCollisionCategories(Category.Cat31); Demo.World3D.AddBody3D(leftBlock); Body3D rightBlock = Body3DFactory.CreateBody3D( Demo.Content.Load <Model>("Models/groundBlockLongRight"), Demo.World3D.World2D, Demo.GraphicsDevice, new Vector2(24.15f, 5.9f), BodyType.Static); rightBlock.Body2D.SetCollisionCategories(Category.Cat31); Demo.World3D.AddBody3D(rightBlock); AddBall(0.70f, -6f, -6f, Category.Cat31); AddBall(0.75f, -4f, -4f, Category.Cat31); AddBall(0.80f, -2f, -2f, Category.Cat31); AddBall(0.85f, 0f, 0f, Category.Cat31); AddBall(0.90f, 2f, 2f, Category.Cat31); AddBall(0.95f, 4f, 4f, Category.Cat31); AddBall(1.00f, 6f, 6f, Category.Cat31); }
public override void Construct() { Demo.Window.Title = "Game Scene Demo"; Demo.Camera3D.Position = new Vector3(17f, 9f, 19f); Vector2 defaultPositionShift = new Vector2(-100f, 5f); Demo.Camera3D.Target = new Vector3(defaultPositionShift.X, defaultPositionShift.Y, 18f); _positionStart = Demo.Camera3D.Target; ConstructBusStop(); ConstructBackground(); PolygonShape shape = new PolygonShape(1f) { Vertices = PolygonTools.CreateRoundedRectangle(25f, 6.45566f, 1.5f, 1.5f, 4) }; _chassis3D = Body3DFactory.CreateBody3D( _bodyModel, Demo.World3D.World2D, Demo.GraphicsDevice, defaultPositionShift, BodyType.Dynamic, new Vector2(25f, 6.45566f)); Demo.World3D.AddBody3D(_chassis3D); #region Přední náprava Vector2 frontPosition = new Vector2(6.996475f, -2.9f) + defaultPositionShift; Vector2 axis = new Vector2(0f, 1.2f); _frontWheels = new Body(); _frontWheels.CreateCircle(1.3163165f, 1f); _frontWheels3D = Body3DFactory.CreateBody3D( _frontWheelsModel, Demo.World3D.World2D, _frontWheels, frontPosition); _springFront = new WheelJoint(_chassis3D.Body2D, _frontWheels, frontPosition, axis, true) { MotorSpeed = 0f, MaxMotorTorque = 10f, MotorEnabled = false, Frequency = 4f, DampingRatio = 0.7f }; Demo.World3D.World2D.Add(_springFront); Demo.World3D.AddBody3D(_frontWheels3D); #endregion Přední náprava #region Zadní náprava Vector2 backPosition = new Vector2(-5.973385f, -2.9f) + defaultPositionShift; _backWheels = new Body(); _backWheels.CreateCircle(1.364622f, 1f); _backWheels3D = Body3DFactory.CreateBody3D( _backWheelsModel, Demo.World3D.World2D, _backWheels, backPosition); _springBack = new WheelJoint(_chassis3D.Body2D, _backWheels, backPosition, axis, true) { MotorSpeed = DEFAULT_MOTOR_SPEED, MaxMotorTorque = MAX_MOTOR_TORQUE, MotorEnabled = true, Frequency = 4f, DampingRatio = 0.7f }; Demo.World3D.World2D.Add(_springBack); Demo.World3D.AddBody3D(_backWheels3D); #endregion Zadní náprava #region Rampa _ramp3D = Body3DFactory.CreateBody3D( _rampModel, Demo.World3D.World2D, Demo.GraphicsDevice, new Vector2(0f, 5f)); Demo.World3D.AddBody3D(_ramp3D); #endregion Rampa }
public override void Construct() { Demo.Window.Title = "Path Demo"; Demo.Camera3D.Position = new Vector3(16.36052f, 7.006462f, 1.119595f); Demo.Camera3D.Target = new Vector3(15.43861f, 6.659885f, 0.9464932f); HiddenBody = Demo.World3D.World2D.CreateBody(Vector2.Zero); Path bridgePath = new Path(); bridgePath.Add(new Vector2(-17, 5)); bridgePath.Add(new Vector2(17, 5)); bridgePath.Closed = false; Model plankModel = Demo.Content.Load <Model>("Models/bridge"); PolygonShape shape = new PolygonShape(PolygonTools.CreateRectangle(0.125f, 0.5f), 20f); List <Body> bodies = PathManager.EvenlyDistributeShapesAlongPath(Demo.World3D.World2D, bridgePath, shape, BodyType.Dynamic, 34); JointFactory.CreateRevoluteJoint( Demo.World3D.World2D, HiddenBody, bodies[0], new Vector2(0f, 0.5f)); JointFactory.CreateRevoluteJoint( Demo.World3D.World2D, HiddenBody, bodies[bodies.Count - 1], new Vector2(0f, -0.5f)); PathManager.AttachBodiesWithRevoluteJoint( Demo.World3D.World2D, bodies, new Vector2(0f, 0.5f), new Vector2(0f, -0.5f), false, true); foreach (Body b in bodies) { Demo.World3D.AddBody3D(new Body3D(plankModel, b)); } Body body = new Body(); body.CreateCircle(1f, 1f); body.SetRestitution(0.7f); Body3D body3D = Body3DFactory.CreateBody3D( Demo.Content.Load <Model>("Models/Primitives/goldBall"), Demo.World3D.World2D, body, new Vector2(8f, 8f)); Demo.World3D.AddBody3D(body3D); body.ApplyAngularImpulse(5f); }