Exemple #1
0
 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;
             }
         }
     }
 }
Exemple #2
0
            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);
                        }
                    }
                }
            }