예제 #1
0
        public MainGame()
        {
            levelParser = new LevelParser();
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
            activeLevel = levelParser.LoadLevel("test");

            graphics.PreferredBackBufferWidth = 800;
            graphics.PreferredBackBufferHeight = 600;
        }
예제 #2
0
        private Level Parse(XmlLevel toParse)
        {
            Level parsed = new Level();

            parsed.AmbientLight = new Vector4(toParse.ambientLightColor.red, toParse.ambientLightColor.blue,
                toParse.ambientLightColor.blue, toParse.ambientLightIntensity);

            parsed.Lights = new List<LightSource>();
            foreach (XmlLightSource lightSource in toParse.lightSources)
            {
                LightSource parsedLightSource = new LightSource();

                parsedLightSource.Light = new Vector4(lightSource.color.red, lightSource.color.green,
                    lightSource.color.blue, lightSource.lightIntensity);
                parsedLightSource.PositionInWorld = new Vector4(lightSource.position.x,
                    lightSource.position.y, lightSource.position.z, lightSource.position.w);

                parsed.Lights.Add(parsedLightSource);
            }

            parsed.gameObjects = new List<GameObject>();
            foreach (XmlGameObject gameObject in toParse.gameObjects)
            {
                GameObject parsedObject = new GameObject();

                // TODO error handling
                parsedObject.ObjectModelContentName = gameObject.model;

                parsedObject.PositionInWorld = new Vector3(gameObject.position.x,
                    gameObject.position.y, gameObject.position.z);

                parsedObject.RotationAxis = new Vector3(gameObject.rotationAxis.x,
                    gameObject.rotationAxis.y, gameObject.rotationAxis.z);

                parsedObject.ScalingInWorld = gameObject.scaling;

                parsedObject.World = Matrix.Identity;

                parsed.gameObjects.Add(parsedObject);
            }

            return parsed;
        }