public void FloorFirstLoad() { while (true) { if (FloorpiecePositions.Count == 0) { FloorpiecePositions.Add(new Vector2(0, Floor - 2)); } else { FloorpiecePositions.Add(new Vector2((this.FloorTexture.Width - 2) * FloorpiecePositions.Count, Floor - 2)); if (FloorpiecePositions[FloorpiecePositions.Count - 1].X > this.Game.Window.ClientBounds.Width - this.FloorTexture.Width) { break; } } } }
public void Tick(GameTime gameTime) { if (this.Game.GameManager.GameState == 1) { if (this.DayNightCycleEnabled) { MoonPosition = new Vector2(this.Game.Window.ClientBounds.Width - MoonTexture.Width, ((this.Game.Window.ClientBounds.Height - 40) * (float)-Math.Sin(Math.PI * (CurrentTimeOfDay / (DayNightCycleTime / 2)) + 0.5f * Math.PI)) + this.Game.Enviroment.Floor); SunPosition = new Vector2(this.Game.Window.ClientBounds.Width - SunTexture.Width, ((this.Game.Window.ClientBounds.Height - 40) * (float)Math.Sin(Math.PI * (CurrentTimeOfDay / (DayNightCycleTime / 2)) + 0.5f * Math.PI)) + this.Game.Enviroment.Floor); this.CurrentTimeOfDay += (float)gameTime.ElapsedGameTime.TotalSeconds; if (this.CurrentTimeOfDay > this.DayNightCycleTime) { this.CurrentTimeOfDay = 0.0f; } int ColorDelta = ColorDay - ColorNight; if (this.CurrentTimeOfDay >= this.DayNightCycleTime / 2) { this.IsDay = false; float colorEditMultiplier = 1 - (CurrentTimeOfDay / (DayNightCycleTime / 2)) % 1; int newColorInt = Convert.ToInt32(ColorNight + (ColorDelta * colorEditMultiplier)); this.CycleColor = new Color(newColorInt, newColorInt, newColorInt); } else { this.IsDay = true; float colorEditMultiplier = (CurrentTimeOfDay / (DayNightCycleTime / 2)) % 1; int newColorInt = Convert.ToInt32(ColorNight + (ColorDelta * colorEditMultiplier)); this.CycleColor = new Color(newColorInt, newColorInt, newColorInt); } } if (true) { this.TimeMultiplier += (float)(gameTime.ElapsedGameTime.TotalSeconds * 0.001f); bool SpawnObstructed = false; for (int i = 0; i < FloorpiecePositions.Count; i++) { FloorpiecePositions[i] = new Vector2(FloorpiecePositions[i].X - 10 * TimeMultiplier, FloorpiecePositions[i].Y); //Console.WriteLine(FloorpiecePositions[i].X + ":" + FloorpiecePositions[i].Y); if (FloorpiecePositions[i].X >= this.Game.Window.ClientBounds.Width - FloorTexture.Width + 10) { SpawnObstructed = true; //Console.WriteLine("Spawn Obtructed!"); break; } } if (!SpawnObstructed) { FloorpiecePositions.Add(new Vector2(this.Game.Window.ClientBounds.Width, Floor - 2)); //Console.WriteLine("Added Floor Tile!"); } List <Vector2> RemovalList = new List <Vector2>(); foreach (var FloorPiecePos in FloorpiecePositions) { if (FloorPiecePos.X < 0 - FloorTexture.Width) { RemovalList.Add(FloorPiecePos); } } foreach (var item in RemovalList) { FloorpiecePositions.Remove(item); //Console.WriteLine("Removed Floor Tile!"); } } if (true) { this.CurrentObstacleCooldown += (float)gameTime.ElapsedGameTime.TotalSeconds; if (CurrentObstacleCooldown > this.MinObstacleCooldown) { if (Random.Next(0, 10) == 0) { int nextObstacle = Random.Next(0, 3); //int nextObstacle = 0; this.Obstacles.Add(new Obstacle(this.Game, this.ObstacleTextures[nextObstacle], this.ObstacleTextureOffsets[nextObstacle])); CurrentObstacleCooldown = 0; this.MinObstacleCooldown = Random.Next(10, 30) / 10; } } List <Obstacle> RemovalList = new List <Obstacle>(); foreach (var obstacle in Obstacles) { obstacle.Tick(gameTime); if (obstacle.Position.X < (0 - obstacle.Collider.Width)) { RemovalList.Add(obstacle); } } foreach (var obstacle in RemovalList) { Obstacles.Remove(obstacle); } } } }