public void Update(GameTime gameTime) { CameraC camera = entityController.GetAllComponent <CameraC>()[0]; compatableEntitys = entityController.EntitesThatContainComponents(entityController.GetAllEntityWithComponent <TransformC>(), typeof(TextureC), typeof(ForgroundC)); spriteBatch.Begin(SpriteSortMode.Texture, null, null, null, null, null, camera.matrix); ProcessEntity(); spriteBatch.End(); }
public void Update(GameTime gameTime) { compatableEntitys = entityController.GetAllEntityWithComponent <BackGroundC>(); camera = entityController.GetAllComponent <CameraC>()[0]; spriteBatch.Begin(SpriteSortMode.Texture, null, SamplerState.PointWrap, null, null, null, camera.matrix); ProcessEntity(); spriteBatch.End(); }
public void ProcessEntity() { foreach (Entity e in compatableEntitys) { CameraC cameraC = entityController.GetAllComponent <CameraC>()[0]; Vector3 camTranslation = cameraC.matrix.Translation; Vector2 playerPos = e.GetComponent <TransformC>(); Vector3 translation = new Vector3(MathHelper.Lerp(camTranslation.X, -playerPos.X + (graphicsDevice.Viewport.Width / 2), cameraFollowDampening), MathHelper.Lerp(camTranslation.Y, -playerPos.Y + (graphicsDevice.Viewport.Height / 2), 1f), 0); cameraC.matrix = Matrix.CreateScale(new Vector3(1, 1, 0)) * Matrix.CreateTranslation(translation); } }
public void Update(GameTime gameTime) { List<Entity> players = entityController.EntitesThatContainComponents(entityController.GetAllEntityWithComponent<TransformC>(), typeof(ControllableC)); CameraC camera = entityController.GetAllComponent<CameraC>()[0]; chunkSpriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, camera.matrix); Vector2 position = players[0].GetComponent<TransformC>(); //The current chunk pos int cX = (int)((position.X / (diameter * Grid.gridPixelSize))); int cY = (int)((position.Y / (diameter * Grid.gridPixelSize))); int x = cX * diameter * Grid.gridPixelSize; int y = cY * diameter * Grid.gridPixelSize; Rectangle r = new Rectangle(x, y, diameter * Grid.gridPixelSize, diameter * Grid.gridPixelSize); if (x >= 0 && y >=0 && r.Contains(position)) { ChunkC c = null; //Console.WriteLine(cX + " " + cY); chunks.TryGetValue(new Vector2(cX,cY), out c); if (c == null) c = GenerateChunk(x, y); chunkBeingProcessed = c; ProcessEntity(); } cX = (int)((position.X / (diameter * Grid.gridPixelSize)))+1; cY = (int)((position.Y / (diameter * Grid.gridPixelSize)))+1; x = (cX) * diameter * Grid.gridPixelSize; y = (cY) * diameter * Grid.gridPixelSize; r = new Rectangle(x, y, diameter * Grid.gridPixelSize, diameter * Grid.gridPixelSize); if (x >= 0 && y >= 0 && r.Contains(new Vector2((int)(position.X+graphicsDevice.Viewport.Width/2), (int)(position.Y + graphicsDevice.Viewport.Height / 2)))) { ChunkC c = null; chunks.TryGetValue(new Vector2(cX, cY), out c); if (c == null) c = GenerateChunk(x, y); chunkBeingProcessed = c; ProcessEntity(); } cX = (int)((position.X / (diameter * Grid.gridPixelSize))) - 1; cY = (int)((position.Y / (diameter * Grid.gridPixelSize))) - 1; x = (cX) * diameter * Grid.gridPixelSize; y = (cY) * diameter * Grid.gridPixelSize; r = new Rectangle(x, y, diameter * Grid.gridPixelSize, diameter * Grid.gridPixelSize); if (x >= 0 && y >= 0 && r.Contains(new Vector2((int)(position.X - graphicsDevice.Viewport.Width / 2), (int)(position.Y - graphicsDevice.Viewport.Height / 2)))) { ChunkC c = null; chunks.TryGetValue(new Vector2(cX, cY), out c); if (c == null) c = GenerateChunk(x, y); chunkBeingProcessed = c; ProcessEntity(); } cX = (int)((position.X / (diameter * Grid.gridPixelSize))) - 1; cY = (int)((position.Y / (diameter * Grid.gridPixelSize))) + 1; x = (cX) * diameter * Grid.gridPixelSize; y = (cY) * diameter * Grid.gridPixelSize; r = new Rectangle(x, y, diameter * Grid.gridPixelSize, diameter * Grid.gridPixelSize); if (x >= 0 && y >= 0 && r.Contains(new Vector2((int)(position.X - graphicsDevice.Viewport.Width / 2), (int)(position.Y + graphicsDevice.Viewport.Height / 2)))) { ChunkC c = null; chunks.TryGetValue(new Vector2(cX, cY), out c); if (c == null) c = GenerateChunk(x, y); chunkBeingProcessed = c; ProcessEntity(); } cX = (int)((position.X / (diameter * Grid.gridPixelSize))) + 1; cY = (int)((position.Y / (diameter * Grid.gridPixelSize))) - 1; x = (cX) * diameter * Grid.gridPixelSize; y = (cY) * diameter * Grid.gridPixelSize; r = new Rectangle(x, y, diameter * Grid.gridPixelSize, diameter * Grid.gridPixelSize); if (x >= 0 && y >= 0 && r.Contains(new Vector2((int)(position.X - graphicsDevice.Viewport.Width / 2), (int)(position.Y + graphicsDevice.Viewport.Height / 2)))) { ChunkC c = null; chunks.TryGetValue(new Vector2(cX, cY), out c); if (c == null) c = GenerateChunk(x, y); chunkBeingProcessed = c; ProcessEntity(); } cX = (int)((position.X / (diameter * Grid.gridPixelSize))); cY = (int)((position.Y / (diameter * Grid.gridPixelSize))) + 1; x = (cX) * diameter * Grid.gridPixelSize; y = (cY) * diameter * Grid.gridPixelSize; r = new Rectangle(x, y, diameter * Grid.gridPixelSize, diameter * Grid.gridPixelSize); if (x >= 0 && y >= 0 && r.Contains(new Vector2(position.X, position.Y + graphicsDevice.Viewport.Height / 2))) { ChunkC c = null; chunks.TryGetValue(new Vector2(cX, cY), out c); if (c == null) c = GenerateChunk(x, y); chunkBeingProcessed = c; ProcessEntity(); } cX = (int)((position.X / (diameter * Grid.gridPixelSize))); cY = (int)((position.Y / (diameter * Grid.gridPixelSize))) - 1; x = (cX) * diameter * Grid.gridPixelSize; y = (cY) * diameter * Grid.gridPixelSize; r = new Rectangle(x, y, diameter * Grid.gridPixelSize, diameter * Grid.gridPixelSize); if (x >= 0 && y >= 0 && r.Contains(new Vector2((int)(position.X), (int)(position.Y - graphicsDevice.Viewport.Height / 2)))) { ChunkC c = null; chunks.TryGetValue(new Vector2(cX, cY), out c); if (c == null) c = GenerateChunk(x, y); chunkBeingProcessed = c; ProcessEntity(); } cX = (int)((position.X / (diameter * Grid.gridPixelSize))) - 1; cY = (int)((position.Y / (diameter * Grid.gridPixelSize))); x = (cX) * diameter * Grid.gridPixelSize; y = (cY) * diameter * Grid.gridPixelSize; r = new Rectangle(x, y, diameter * Grid.gridPixelSize, diameter * Grid.gridPixelSize); if (x >= 0 && y >= 0 && r.Contains(new Vector2((int)(position.X - graphicsDevice.Viewport.Width / 2), (int)(position.Y)))) { ChunkC c = null; chunks.TryGetValue(new Vector2(cX, cY), out c); if (c == null) c = GenerateChunk(x, y); chunkBeingProcessed = c; ProcessEntity(); } cX = (int)((position.X / (diameter * Grid.gridPixelSize))) + 1; cY = (int)((position.Y / (diameter * Grid.gridPixelSize))); x = (cX) * diameter * Grid.gridPixelSize; y = (cY) * diameter * Grid.gridPixelSize; r = new Rectangle(x, y, diameter * Grid.gridPixelSize, diameter * Grid.gridPixelSize); if (x >= 0 && y >= 0 && r.Contains(new Vector2((int)(position.X + graphicsDevice.Viewport.Width / 2), (int)(position.Y)))) { ChunkC c = null; chunks.TryGetValue(new Vector2(cX,cY), out c); if (c == null) c = GenerateChunk(x, y); chunkBeingProcessed = c; ProcessEntity(); } chunkSpriteBatch.End(); }