コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: BusScene.cs プロジェクト: AntoninPrazsky/simulation
        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
        }