Пример #1
0
        public void GifStuff(GameTime gameTime)
        {
            if (Keyboard.GetState().IsKeyDown(Keys.F4))
            {
                //only send a frame every 250ms
                lastUpdate += gameTime.ElapsedGameTime.TotalMilliseconds;
                if (lastUpdate > 30)
                {
                    gifSaveRequested = true;
                    gif.AddFrame(30);
                    Debug.Log("added frame", Debug.LogType.Warning);
                    lastUpdate = 0;
                }
            }
            else if (gifSaveRequested)
            {
                Debug.Log("Saving gif", Debug.LogType.Warning);
                gifThread = new Thread(() => gif.WriteAllFrames());

                if (!gifThread.IsAlive)
                {
                    gifThread.Start();
                }
                else
                {
                    gifThread.Join();
                    Debug.Log("Saved Gif", Debug.LogType.Error);
                }

                gifSaveRequested = false;
            }
        }
Пример #2
0
        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            if (Keyboard.GetState().IsKeyDown(Keys.F12))
            {
                //only send a frame every 250ms
                lastUpdate += gameTime.ElapsedGameTime.TotalMilliseconds;
                if (lastUpdate > 250)
                {
                    gifSaveRequested = true;
                    gif.AddFrame(250);
                    lastUpdate = 0;
                }
            }
            else if (gifSaveRequested)
            {
                gif.WriteAllFrames();
                gifSaveRequested = false;
            }

            if (Keyboard.GetState().IsKeyDown(Keys.F9))
            {
                if (!doSingleScreenshot)
                {
                    ssh.SaveScreenshot();
                    doSingleScreenshot = true;
                }
            }
            if (Keyboard.GetState().IsKeyUp(Keys.F9))
            {
                doSingleScreenshot = false;
            }


            // TODO: Add your update logic here
            rot += .05f;
            if (rot > 180)
            {
                rot = 0;
            }


            base.Update(gameTime);
        }