示例#1
0
 protected override void LoadContent()
 {
     spriteBatch = new SpriteBatch(GraphicsDevice);
     //Textures need loaded before level
     Sprites.SpriteMachine.Instance.LoadAllTextures(Content);
     GameManager.Instance.LoadLevelDictionary(Content);
     GameManager.Instance.LoadFirstLevel(Content);
     SoundEffectManager.Instance.LoadAllSoundEffects(Content);
     SoundEffectManager.Instance.PlayBGM();
     camera             = new Camera.PlayerFollowingCamera(0);
     keyboardController = new KeyboardController(this);
     gamepadController  = new GamepadController(this);
     musicController    = new MusicController();
     HeadsUpDisplay.Instance.LoadAllFonts(Content);
 }
示例#2
0
        public void SetCamera(Camera.ICamera camera)
        {
            SemanticsDic semanDic = m_EffectValueDic["camera"];

            foreach (var pair in semanDic)
            {
                string semantics      = pair.Key;
                string baseMatrixName = "";
                foreach (var geoSem in SemanticsGeometryTrans)
                {
                    if (semantics.StartsWith(geoSem))
                    {
                        baseMatrixName = geoSem;
                    }
                }
                if (baseMatrixName != "")
                {
                    Matrix matrix;
                    switch (baseMatrixName)
                    {
                    case "world":
                        matrix = camera.World;
                        break;

                    case "view":
                        matrix = camera.View;
                        break;

                    case "projection":
                        matrix = camera.Projection;
                        break;

                    case "worldview":
                        matrix = camera.World * camera.View;
                        break;

                    case "viewprojection":
                        matrix = camera.View * camera.Projection;
                        break;

                    case "worldviewprojection":
                        matrix = camera.WorldViewProjection;
                        break;

                    default:
                        matrix = Matrix.Identity;
                        break;
                    }
                    string option = semantics.Replace(baseMatrixName, "");
                    switch (option)
                    {
                    case "transpose":
                        matrix = Matrix.Transpose(matrix);
                        break;

                    case "inverse":
                        matrix = Matrix.Invert(matrix);
                        break;
                    }
                    SetVariable(semantics, "camera", matrix);
                }
                else
                {
                    switch (semantics)
                    {
                    case "position":
                        SetVariable(semantics, "camera", camera.Position);
                        break;

                    case "direction":
                        SetVariable(semantics, "camera", camera.Direction);
                        break;

                    case "psize0":
                        SetVariable(pair.Key, "camera", Math.Abs(camera.Width));
                        break;

                    case "psize1":
                        SetVariable(pair.Key, "camera", Math.Abs(camera.Height));
                        break;
                    }
                }
            }

            semanDic = m_EffectValueDic["viewstatus"];
            var scr = camera.Screen;

            foreach (var pair in semanDic)
            {
                switch (pair.Key)
                {
                case "psize2":
                    SetVariable(pair.Key, "viewstatus", pntSize);
                    break;
                }
            }
        }