Esempio n. 1
0
        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();
            }
        }