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); }
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; } } }