Ejemplo n.º 1
0
        public void Test()
        {
            Scene scene = new Scene();

            GameObject ground = new GameObject();

            ground.SetPosition(new Vec3(0f, -3f, -3f))
            .SetBounds(new Vec3(10f, 1f, 10f));
            ground.AddComponent(new SolidBoxObject3D
            {
                Colour = Color4.Red
            });
            Vec3 p1 = ground.Transform.Position;

            ground.AddComponent(new BoxCollider());
            RigidBody3D rig1 = new RigidBody3D();

            ground.AddComponent(rig1);
            rig1.RigidBody.IsStatic = true;
            scene.AddObject(ground);

            GameObject player = new GameObject();

            player.SetPosition(new Vec3(2, 0, 0))
            .SetBounds(Vec3.One);
            player.AddComponent(new SolidBoxObject3D
            {
                Colour = Color4.Green
            });
            Vec3 p2 = player.Transform.Position;

            player.AddComponent(new BoxCollider());
            RigidBody3D rig2 = new RigidBody3D();

            player.AddComponent(rig2);
            player.AddComponent(new PlayerComponent());
            scene.AddObject(player);

            GameObject camera = new GameObject();

            camera.SetPosition(new Vec3(0, 0, -10));
            camera.AddComponent(new StaticCamera());
            scene.AddObject(camera);

            GameObject g1 = new GameObject();
            GlobalPhysicsComponent3D physics = new GlobalPhysicsComponent3D();

            physics.AddRigidBody(rig1);
            physics.AddRigidBody(rig2);
            g1.AddComponent(physics);
            scene.AddObject(g1);

            IGame game = new GameBuilder()
                         .SetDefaultEvents()
                         .Build();

            game.LoadScene(scene);
            game.Run(60.0f);
        }
Ejemplo n.º 2
0
        private Scene GetInitScene()
        {
            Scene scene = new Scene();

            GameObject g1 = new GameObject();

            g1.SetPosition(new Vec3(0f, 0f, 0f))
            .SetBounds(new Vec3(1f, 1f, 0f));

            g1.AddComponent(new SolidBoxObject2D
            {
                Colour = Color4.White
            });
            g1.AddComponent(new RotateComponent());
            scene.AddObject(g1);

            GameObject g2 = new GameObject();

            g2.SetPosition(new Vec3(-2f, -1f, 0f))
            .SetBounds(new Vec3(2f, 2f, 2f));
            g2.AddComponent(new SolidBoxObject3D
            {
                Colour = Color4.Pink,
                Layer  = 99
            });
            //g2.AddComponent(new RotateComponent());
            g2.AddComponent(new BoxCollider());
            RigidBody3D body3D = new RigidBody3D();

            g2.AddComponent(body3D);
            scene.AddObject(g2);

            GameObject plane = new GameObject();

            plane.SetPosition(new Vec3(-5f, -4f, 0f))
            .SetBounds(new Vec3(8f, 2f, 8f));
            plane.AddComponent(new SolidBoxObject3D
            {
                Colour = Color4.Green,
                Layer  = 99
            });
            plane.AddComponent(new BoxCollider());
            RigidBody3D body3D1 = new RigidBody3D();

            plane.AddComponent(body3D1);
            body3D1.RigidBody.IsStatic = true;
            scene.AddObject(plane);

            GameObject           g3   = new GameObject();
            SolidPolygonObject2D poly = new SolidPolygonObject2D
            {
                Colour = Color4.Gold,
            };

            g3.SetPosition(new Vec3(-3f, -3f, 0f));
            poly.Layer = 1;
            poly.Points.Add(new Vec3(1f, 1.5f, 0));
            poly.Points.Add(new Vec3(0f, 0, 0));
            poly.Points.Add(new Vec3(2f, 0, 0));
            g3.AddComponent(poly);
            g3.AddComponent(new RotateComponent());
            scene.AddObject(g3);

            GameObject           g4    = new GameObject();
            SolidPolygonObject3D poly3 = new SolidPolygonObject3D
            {
                Colour = Color4.Gray,
            };

            g4.SetPosition(new Vec3(1f, 1f, 0f))
            .SetBounds(new Vec3(0, 0, 3f));
            poly3.Layer = 1;
            poly3.Points.Add(new Vec3(0, 0));
            poly3.Points.Add(new Vec3(1f, 0));
            poly3.Points.Add(new Vec3(1.5f, 0.86f));
            poly3.Points.Add(new Vec3(1.0f, 1.72f));
            poly3.Points.Add(new Vec3(0, 1.72f));
            poly3.Points.Add(new Vec3(-0.5f, 0.87f));
            g4.AddComponent(poly3);
            g4.AddComponent(new RotateComponent());
            scene.AddObject(g4);

            GameObject g5 = new GameObject();

            g5.SetPosition(new Vec3(2, 2, 0));
            g5.AddComponent(new PointsObject2D
            {
                Colour    = Color4.White,
                PointSize = 10
            }
                            );
            scene.AddObject(g5);

            GameObject g6 = new GameObject();

            g6.AddComponent(new CircleObject2D
            {
                Radius = 0.5f,
                Colour = Color4.Red
            });
            g6.SetPosition(new Vec3(3.5f, 1f, 0))
            .SetBounds(new Vec3(1, 1, 0));
            scene.AddObject(g6);

            GameObject g7 = new GameObject();

            g7.SetBounds(new Vec3(3, 3, 0))
            .SetPosition(new Vec3(-2, -2, 0));
            g7.AddComponent(new RawTexture2D("Images/download.png"));
            scene.AddObject(g7);

            GameObject g8 = new GameObject();

            g8.SetBounds(new Vec3(1, 1, 0))
            .SetPosition(new Vec3(0.5f, 0, 0));
            g8.AddComponent(new TextRenderer(100, 100)
            {
                FontColor = Color.Red,
                Text      = "Hello"
            });
            scene.AddObject(g8);

            IAudio audio = ResourceManager.LoadWave("Sounds/Mixdown2.wav");

            audio.SetLoop(true);
            //audio.Play();

            GameObject physics = new GameObject();
            GlobalPhysicsComponent3D physicsComponent3D = new GlobalPhysicsComponent3D();

            physicsComponent3D.AddRigidBody(g2.GetComponentUnsafe <RigidBody3D>().Value);
            physicsComponent3D.AddRigidBody(plane.GetComponentUnsafe <RigidBody3D>().Value);
            physics.AddComponent(physicsComponent3D);
            scene.AddObject(physics);

            GameObject camera = new GameObject();

            camera.SetPosition(new Vec3(0, 0, -10f));
            camera.AddComponent(new StaticCamera());
            scene.AddObject(camera);
            scene.Save("scene.json");

            return(scene);
        }