コード例 #1
0
ファイル: Game3D.cs プロジェクト: Vejgaard/Monolot
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);

            // TODO: use this.Content to load your game content here
            imageKK = Content.Load<Texture2D>(@"Images\KK");
            imageBox = Content.Load<Texture2D>(@"Images\BoxSides");
            imageBall = Content.Load<Texture2D>(@"Images\football");

            var model = new KModel();
            model.TexCoordsAreInPixels = false;
            for (int i = 3; i < 100; i = i+2)
            {
                var z = -i / 2;
                model.AddQuad(
                    model.AddVertex(new Vector3(-i, -i, z)),
                    model.AddVertex(new Vector3(i, -i, z)),
                    model.AddVertex(new Vector3(-i, i, z)),
                    model.AddVertex(new Vector3(i, i, z)),
                    new Rectangle(0, 0, 1, 1));
            }
            _drawableKK = new DrawableModel(model, imageKK, GraphicsDevice);

            model = new KModel();
            model.AddBox(new BoundingBox(new Vector3(-5, -5, 1), new Vector3(-3, -3, 3)), new Rectangle(0, 0, 64, 64));
            model.AddBox(new BoundingBox(new Vector3(-5, 3, 1), new Vector3(-3, 5, 3)), new Rectangle(0, 64, 64, 64));
            model.AddBox(new BoundingBox(new Vector3(3, -5, 1), new Vector3(5, -3, 3)), new Rectangle(0, 64, 64, 64));
            model.AddBox(new BoundingBox(new Vector3(3, 3, 1), new Vector3(5, 5, 3)), new Rectangle(0, 0, 64, 64));
            _drawableBox = new DrawableModel(model, imageBox, GraphicsDevice);

            model = GeometricalPrimitives.CreateBall(2, new Rectangle(0, 0, 1, 1));
            model.TexCoordsAreInPixels = false;
            /*            model.Transform(Matrix.CreateTranslation(1, 0, 0));
            var model2 = GeometricalPrimitives.CreateBall(3, new Rectangle(0, 0, 1, 1));
            model2.Transform(Matrix.CreateScale(0.5f));
            model2.Transform(Matrix.CreateTranslation(-1, 0, 0));
            model.Append(model2);*/
            _drawableBall = new DrawableModel(model, imageBall, GraphicsDevice);

            // Matrix test
            var mat = Matrix.CreateTranslation(1, 2, 3);
            Console.WriteLine(mat);
        }
コード例 #2
0
ファイル: Game3D.cs プロジェクト: Kaskelot/Monolot
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);

            // TODO: use this.Content to load your game content here
            imageKK = Content.Load<Texture2D>(@"Images\KK");
            imageBox = Content.Load<Texture2D>(@"Images\BoxSides");
            imageBall = Content.Load<Texture2D>(@"Images\football");
            imageSpikyBall = Content.Load<Texture2D>(@"Images\spiky");

            var model = new KModel();
            model.TexCoordsAreInPixels = false;
            for (int i = 3; i < 100; i = i+2)
            {
                var z = -i / 2;
                model.AddQuad(
                    model.AddVertex(new Vector3(-i, -i, z)),
                    model.AddVertex(new Vector3(i, -i, z)),
                    model.AddVertex(new Vector3(-i, i, z)),
                    model.AddVertex(new Vector3(i, i, z)),
                    new Rectangle(0, 0, 1, 1));
            }
            _drawableKK = new DrawableModel(model, imageKK, GraphicsDevice, false);

            model = new KModel();
            model.AddBox(new BoundingBox(new Vector3(-5, 3, 1), new Vector3(-3, 5, 3)), new Rectangle(0, 64, 64, 64), true);
            model.AddBox(new BoundingBox(new Vector3(3, 3, 1), new Vector3(5, 5, 3)), new Rectangle(0, 0, 64, 64), true);
            model.AddBox(new BoundingBox(new Vector3(-5, -5, 1), new Vector3(-3, -3, 3)), new Rectangle(0, 0, 64, 64), true);

            for (int i = 0; i < 11; i++)
                for (int j = 0; j < 11; j++)
                    if (i % 2 == 0 || j % 2 == 0)
                    {
                        model.AddBox(new BoundingBox(new Vector3(3 + 2*i, -5 - 2*j, 1), new Vector3(5 + 2*i, -3 - 2*j, 3)), new Rectangle(0, 128, 225, 225), false);
                    }
            _drawableBox = new DrawableModel(model, imageBox, GraphicsDevice, false);

            model = GeometricalPrimitives.CreateBall(2, new Rectangle(0, 0, 1, 1));
            model.TexCoordsAreInPixels = false;
            _drawableBall = new DrawableModel(model, imageBall, GraphicsDevice, true);

            model = GeometricalPrimitives.CreateSpikyBall(3, 0.2f, new Rectangle(0, 0, 1, 1));
            model.TexCoordsAreInPixels = false;
            _drawableSpikyBall = new DrawableModel(model, imageSpikyBall, GraphicsDevice, true);

            // Matrix test
            var mat = Matrix.CreateTranslation(1, 2, 3);
            Console.WriteLine(mat);
        }
コード例 #3
0
ファイル: GamePila.cs プロジェクト: Kaskelot/Monolot
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            _spriteBatch = new SpriteBatch(GraphicsDevice);

            _font = Content.Load<SpriteFont>(@"Fonts\TestFont");

            // TODO: use this.Content to load your game content here
            _imageKK = Content.Load<Texture2D>(@"Images\KK");
            var imageFloor = Content.Load<Texture2D>(@"Images\FloorWoodLight");
            var imageBox = Content.Load<Texture2D>(@"Images\BoxSides");
            var imageBall = Content.Load<Texture2D>(@"Images\football");
            var imageSpikyBall = Content.Load<Texture2D>(@"Images\spiky");

            _levelSearch = new Search3DSimple<FacetRef>();

            var model = new KModel();
            model.TexCoordsAreInPixels = false;
            int size = 100;
            model.AddQuad(
                model.AddVertex(new Vector3(-size, -size, 0)),
                model.AddVertex(new Vector3(size, -size, 0)),
                model.AddVertex(new Vector3(-size, size, 0)),
                model.AddVertex(new Vector3(size, size, 0)),
                new Rectangle(0, 0, 10, 10));
            _drawableKK = new DrawableModel(model, imageFloor, GraphicsDevice, false);
            ModelSearch.AddModel(_levelSearch, model);

            model = new KModel();
            var boxes = new List<Vector3>
            {
                new Vector3(1, 1, 0), new Vector3(2, 1, 0), new Vector3(2, 1, 1), new Vector3(2, 1, 2),
                new Vector3(3, 1, 0), new Vector3(3, 1, 1), new Vector3(3, 1, 2),
                new Vector3(-2, 1, 0), new Vector3(-2, 1, 1),
                new Vector3(-3, -3, 0), new Vector3(-3, -3, 1), new Vector3(-3, -3, 2), new Vector3(-3, -3, 3),
                new Vector3(-3, -6, 0), new Vector3(-3, -6, 1), new Vector3(-3, -6, 2), new Vector3(-3, -6, 3),
                new Vector3(-3, -4, 3), new Vector3(-3, -5, 3),
            };
            for (int j = 0; j < 5; j++)
                for (int i = -20; i < 20; i++)
                {
                    //boxes.Add(new Vector3(i, -20, j));
                    boxes.Add(new Vector3(-20, i + 1, j));
                    boxes.Add(new Vector3(i + 1, 20, j));
                    boxes.Add(new Vector3(20, i, j));
                }
            foreach (var corner in boxes)
                model.AddBox(new BoundingBox(corner, corner + new Vector3(1, 1, 1)), new Rectangle(0, 128, 225, 225), false);
            /*            model.AddBox(new BoundingBox(new Vector3(3, 3, 1), new Vector3(5, 5, 3)), new Rectangle(0, 0, 64, 64), true);
                        model.AddBox(new BoundingBox(new Vector3(-5, -5, 1), new Vector3(-3, -3, 3)), new Rectangle(0, 0, 64, 64), true); */
            model.AddBox(new BoundingBox(new Vector3(2, -5, 0), new Vector3(2, -5, 0) + new Vector3(2.5f, 2.5f, 2.5f)), new Rectangle(0, 128, 225, 225), false);
            _drawableBox = new DrawableModel(model, imageBox, GraphicsDevice, false);
            ModelSearch.AddModel(_levelSearch, model);

            model = GeometricalPrimitives.CreateBall(2, new Rectangle(0, 0, 1, 1));
            model.TexCoordsAreInPixels = false;
            _drawableBall = new DrawableModel(model, imageBall, GraphicsDevice, true);

            model = GeometricalPrimitives.CreateSpikyBall(3, 0.2f, new Rectangle(0, 0, 1, 1));
            model.TexCoordsAreInPixels = false;
            _drawableSpikyBall = new DrawableModel(model, imageSpikyBall, GraphicsDevice, true);

            SceneRenderer.EnableShadows(GraphicsDevice, Content.Load<Effect>(@"Shaders\ShadowCasting"), 4, 2048);

            InitLights();
        }