private void AddRamp(bool typeA, Vector2 position) { Body3D ramp = _creator.CreateBody3D(typeA ? _rampAModel : _rampBModel, position, BodyType.Static); ramp.Body2D.SetCollisionCategories(Category.Cat31); Demo.World3D.AddBody3D(ramp); }
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 }