public static void Run() { RenderWindow Window = WindowOptions.Window; Clock c = new Clock(); Time dTime = Time.FromSeconds(0); StageEntity Stage = new StageEntity(); PlayerEntity Player = new PlayerEntity(); List <IActor> ActorList = new List <IActor>(); ActorList.Add(Player); List <IStaticEntity> StaticEntityList = new List <IStaticEntity>(); StaticEntityList.Add(Stage); WindowOptions.AddGlobalEvents(Window); // Open while (Window.IsOpen) { c.Restart(); Window.DispatchEvents(); c.Restart(); // In Focus while (WindowOptions.InFocus && Window.IsOpen) { Window.DispatchEvents(); // Delay Exceeded if (c.ElapsedTime.AsMilliseconds() >= WindowOptions.Delay) { Window.DispatchEvents(); Window.Clear(Color.Cyan); Window.Draw(Stage.Shape); Window.Draw(Player.Shape); foreach (IActor actor in ActorList) { while (actor.Flags.Count > 0) { actor.Flags.Clear(); } } HandleInput(Player, dTime); foreach (IActor actor in ActorList) { Physics.Update(actor, dTime); } foreach (IActor actor in ActorList) { actor.Shape.Position += actor.Transformer.Velocity.Vector; } Window.Display(); dTime = c.Restart(); } } Window.Display(); } }