Beispiel #1
0
        public void runGameTick(SimulationParams simulationParams)
        {
            foreach (CelestialBody celestialBody in CurMap.celestialBodies)
            {
                celestialBody.X += celestialBody.VX * simulationParams.DeltaTime.TotalSeconds;
                celestialBody.Y += celestialBody.VY * simulationParams.DeltaTime.TotalSeconds;

                if (celestialBody.X > 800 - celestialBody.Radius)
                {
                    celestialBody.VX = -celestialBody.VX;
                    celestialBody.X  = 800 - celestialBody.Radius;
                }
                else if (celestialBody.X < 0 + celestialBody.Radius)
                {
                    celestialBody.VX = -celestialBody.VX;
                    celestialBody.X  = celestialBody.Radius;
                }
                if (celestialBody.Y > 600 - celestialBody.Radius)
                {
                    celestialBody.VY = -celestialBody.VY;
                    celestialBody.Y  = 600 - celestialBody.Radius;
                }
                else if (celestialBody.Y < 0 + celestialBody.Radius)
                {
                    celestialBody.VY = -celestialBody.VY;
                    celestialBody.Y  = celestialBody.Radius;
                }
            }
            if (simulationParams.TotalTime > TimeSpan.FromMilliseconds(100))
            {
                Console.WriteLine("adding new timestamp at {0}", DateTime.UtcNow);
                newTimeStamp(TimeStamps.LastOrDefault().Key + simulationParams.TotalTime);
                simulationParams.TotalTime = TimeSpan.Zero;
            }
        }
Beispiel #2
0
        public void mapBackFiveSeconds()
        {
            var timestamp = TimeStamps.LastOrDefault().Key - TimeSpan.FromSeconds(5);

            if (timestamp > TimeStamps.FirstOrDefault().Key)
            {
                TimeStamps = TimeStamps.Where(k => k.Key <= timestamp).ToList().ToDictionary(k => k.Key, v => v.Value);
                CurMap     = TimeStamps.LastOrDefault().Value;
            }
        }