move Camera into World

This commit is contained in:
Colin McMillen 2020-03-10 14:38:08 -04:00
parent 536af82beb
commit 37c679b704
2 changed files with 4 additions and 4 deletions

View File

@ -23,7 +23,6 @@ namespace SemiColinGames {
Scene scene; Scene scene;
World world; World world;
Camera camera = new Camera();
public SneakGame() { public SneakGame() {
Debug.WriteLine("MonoGame platform: " + PlatformInfo.MonoGamePlatform + Debug.WriteLine("MonoGame platform: " + PlatformInfo.MonoGamePlatform +
@ -64,11 +63,10 @@ namespace SemiColinGames {
} }
private void LoadLevel() { private void LoadLevel() {
camera = new Camera();
world?.Dispose(); world?.Dispose();
world = new World(GraphicsDevice, Content.LoadString("levels/demo.json")); world = new World(GraphicsDevice, Content.LoadString("levels/demo.json"));
scene?.Dispose(); scene?.Dispose();
scene = new Scene(GraphicsDevice, camera); scene = new Scene(GraphicsDevice, world.Camera);
GC.Collect(); GC.Collect();
GC.WaitForPendingFinalizers(); GC.WaitForPendingFinalizers();
@ -112,7 +110,6 @@ namespace SemiColinGames {
float modelTime = (float) gameTime.ElapsedGameTime.TotalSeconds; float modelTime = (float) gameTime.ElapsedGameTime.TotalSeconds;
Clock.AddModelTime(modelTime); Clock.AddModelTime(modelTime);
world.Update(modelTime, input); world.Update(modelTime, input);
camera.Update(world.Player.Position, world.Width);
} }
base.Update(gameTime); base.Update(gameTime);

View File

@ -22,6 +22,7 @@ namespace SemiColinGames {
public Player Player { get; private set; } public Player Player { get; private set; }
public AABB[] CollisionTargets { get; } public AABB[] CollisionTargets { get; }
public LinesOfSight LinesOfSight { get; private set; } public LinesOfSight LinesOfSight { get; private set; }
public Camera Camera { get; }
// Size of World in pixels. // Size of World in pixels.
public int Width { public int Width {
@ -33,6 +34,7 @@ namespace SemiColinGames {
} }
public World(GraphicsDevice graphics, string json) { public World(GraphicsDevice graphics, string json) {
Camera = new Camera();
LinesOfSight = new LinesOfSight(graphics); LinesOfSight = new LinesOfSight(graphics);
JObject root = JObject.Parse(json); JObject root = JObject.Parse(json);
@ -162,6 +164,7 @@ namespace SemiColinGames {
Reset(); Reset();
} }
LinesOfSight.Update(npcs, CollisionTargets); LinesOfSight.Update(npcs, CollisionTargets);
Camera.Update(Player.Position, Width);
} }
// Draws everything that's behind the player, from back to front. // Draws everything that's behind the player, from back to front.