Example #1
0
        public void GameLoop()
        {
            timer      = new BulletHell.Time.Timer();
            frameTimer = new BulletHell.Time.Timer();
            eventTimer = new BulletHell.Time.Timer();
            game.ResetTime();
            Thread renderThread = new Thread(this.ASynchGameLoop);

            renderThread.Start();
            while (this.Created)
            {
                eventTimer.Reset();
                Application.DoEvents();
                while (eventTimer.Time <= 30)
                {
                    Thread.Yield();
                }
            }
        }
Example #2
0
        public void ASynchGameLoop()
        {
            int count = 0, FRAMES = 30;

            while (this.Created)
            {
                if (++count == FRAMES)
                {
                    fr = 1000 * (double)(FRAMES) / (double)frameTimer.Time;
                    //Console.WriteLine("FR: {0}", fr);
                    frameTimer.Reset();
                    count = 0;
                }
                entityCount = game.EntityCount;// game.Entities.Count();
                timer.Reset();
                GameLogic();
                RenderScene();
                while (timer.Time < 10)
                {
                    Thread.Yield();
                }
            }
        }
Example #3
0
 public void ResetTime()
 {
     gameTimer.Reset();
     timeRateFunc = new PolyFunc <double, double>(curTimeRate);
     timeFunc     = timeRateFunc.FI;
 }