/// <summary> /// Konstruktor abstraktní třídy představující předka pro všechny demonstrační scény. /// </summary> /// <param name="demo">Hlavní třída demonstračního programu, do kterého scéna patří.</param> public Scene(SimulationDemo demo) { Demo = demo; MultipleBody3DCreator = new MultipleBody3DCreator(Demo.GraphicsDevice, Demo.World3D.World2D); DebugView = null; Load(); }
public FrictionScene(SimulationDemo demo) : base(demo) { _cubeModel = Demo.Content.Load <Model>("Models/Primitives/cube"); _rampAModel = Demo.Content.Load <Model>("Models/Obstacles/rampA"); _rampBModel = Demo.Content.Load <Model>("Models/Obstacles/rampB"); _leftBlock = Demo.Content.Load <Model>("Models/groundBlockLongLeft"); _rightBlock = Demo.Content.Load <Model>("Models/groundBlockLongRight"); _creator = new MultipleBody3DCreator(Demo.GraphicsDevice, Demo.World3D.World2D); }
public override void Construct() { Demo.Window.Title = "Simple Demo"; //TODO: Co tato scéna demonstruje? Je na ní 5 židlí, neděje se nic dynamického. Demo.Camera3D.Position = new Vector3(-10.6053f, 7.946681f, 14.91888f); Demo.Camera3D.Target = new Vector3(-10.17842f, 7.646306f, 14.06592f); ConstructGround(); MultipleBody3DCreator.BuildRow( Demo.Content.Load <Model>("Models/chair"), Demo.World3D, 5, new Vector2(0f, 10f), BodyType.Dynamic); }
private void ConstructBusStop() { float roadYShift = 0.19f; int roadCount = 10; MultipleBody3DCreator multipleBody3DCreator = new MultipleBody3DCreator(Demo.GraphicsDevice, Demo.World3D.World2D); Demo.World3D.AddBody3D( multipleBody3DCreator.CreateBody3D( _roadBlock, new Vector2(BLOCK_SIZE * -(roadCount - 2), 2.6f), BodyType.Static)); Demo.World3D.AddBody3D( multipleBody3DCreator.CreateBody3D( _roadBlock, new Vector2(BLOCK_SIZE * (roadCount - 2), 2.6f), BodyType.Static)); BuildRoadBlock(new Vector2(-BLOCK_SIZE, 0f), true); BuildRoadBlock(Vector2.Zero, true); BuildRoadBlock(new Vector2(BLOCK_SIZE, 0f), true); BuildRoadBlock(new Vector2(2 * BLOCK_SIZE, 0f), false); BuildRoadBlock(new Vector2(-2 * BLOCK_SIZE, 0f), false); for (int i = 3; i < roadCount; i++) { BuildRoadBlock(new Vector2(BLOCK_SIZE * i, 0f), true); } for (int i = 3; i < roadCount; i++) { BuildRoadBlock(new Vector2(BLOCK_SIZE * -i, 0f), true); } #region Dekorační bloky Demo.World3D.AddBackdrop3D( new Backdrop3D(_roadStopA, new Vector3(-BLOCK_SIZE, roadYShift, -BLOCK_SIZE))); Demo.World3D.AddBackdrop3D( new Backdrop3D(_roadStopA, new Vector3(0f, roadYShift, -BLOCK_SIZE))); Demo.World3D.AddBackdrop3D( new Backdrop3D(_roadStopA, new Vector3(BLOCK_SIZE, roadYShift, -BLOCK_SIZE))); Demo.World3D.AddBackdrop3D( new Backdrop3D(_roadStopA1End, new Vector3(-2 * BLOCK_SIZE, roadYShift, -BLOCK_SIZE))); Demo.World3D.AddBackdrop3D( new Backdrop3D(_roadStopA1, new Vector3(2 * BLOCK_SIZE, roadYShift, -BLOCK_SIZE))); Demo.World3D.AddBackdrop3D( new Backdrop3D(_roadStopB, new Vector3(-BLOCK_SIZE, roadYShift, BLOCK_SIZE))); Demo.World3D.AddBackdrop3D( new Backdrop3D(_roadStopB, new Vector3(0f, roadYShift, BLOCK_SIZE))); Demo.World3D.AddBackdrop3D( new Backdrop3D(_roadStopB, new Vector3(BLOCK_SIZE, roadYShift, BLOCK_SIZE))); Demo.World3D.AddBackdrop3D( new Backdrop3D(_roadStopB1End, new Vector3(-2 * BLOCK_SIZE, roadYShift, BLOCK_SIZE))); Demo.World3D.AddBackdrop3D( new Backdrop3D(_roadStopB1, new Vector3(2 * BLOCK_SIZE, roadYShift, BLOCK_SIZE))); for (int i = 3; i < roadCount; i++) { Demo.World3D.AddBackdrop3D( new Backdrop3D(_sideA, new Vector3(BLOCK_SIZE * i, roadYShift, -BLOCK_SIZE))); } for (int i = 3; i < roadCount; i++) { Demo.World3D.AddBackdrop3D( new Backdrop3D(_sideB, new Vector3(BLOCK_SIZE * i, roadYShift, BLOCK_SIZE))); } for (int i = 3; i < roadCount; i++) { Demo.World3D.AddBackdrop3D( new Backdrop3D(_sideA, new Vector3(BLOCK_SIZE * -i, roadYShift, -BLOCK_SIZE))); } for (int i = 3; i < roadCount; i++) { Demo.World3D.AddBackdrop3D( new Backdrop3D(_sideB, new Vector3(BLOCK_SIZE * -i, roadYShift, BLOCK_SIZE))); } #endregion Dekorační bloky }