Жест производительности FreeDrag - PullRequest
4 голосов
/ 15 февраля 2012

У меня простой вопрос, я пытаюсь сделать огромную игру для Windows Phone, но у меня все еще есть важное узкое место / проблема / плохая производительность.

Я использовал профилировщик манго, ноЯ не видел никаких проблем, на самом деле он использует только 10% процессора на моем телефоне.

Позвольте мне показать вам проблему.

Это мое обновление

protected override void Update(GameTime gameTime)
    {
        if (TouchPanel.IsGestureAvailable)
        {
            var gs = TouchPanel.ReadGesture();
            switch (gs.GestureType)
            {
                case GestureType.FreeDrag:
                    Position += gs.Delta;
                    break;
            }
        }
        base.Update(gameTime);
    }

Этомоя ничья, где карта - 20x15 Texture2D

protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Color.CornflowerBlue);

        spriteBatch.Begin();          
        spriteBatch.Draw(map, Position, null, Color.Red, 0f, Vector2.Zero, 1f, SpriteEffects.None, 1f);
        spriteBatch.End();

        base.Draw(gameTime);
    }

Проблема в том, что кажется, что DRAW слишком медленный для ОБНОВЛЕНИЯ, или вроде как.

Например:

1) Я перетаскиваю экран справа, очень медленно -> текстура карты корректно движется вправо

2) Я перетаскиваю экран справа, затем налево, довольно быстро -> Текстура карты правильно движется вправо, но имеет небольшую задержку при движении влево, как будто она все еще движется вправо ..

3) Я перетаскиваю экран по кругу, делая круг за 1 секунду-> ну, карте нужно 3 секунды, чтобы сделать круговое движение ..

Что яделать неправильно ??

Должен ли я показать вам видео на YouTube ??

Спасибо вам большое !!Лука

1 Ответ

2 голосов
/ 16 февраля 2012

FIXED!

это было так глупо ..

может случиться так, что у нас будет несколько касаний одновременно до розыгрыша, поэтому мы должны поставить WHILE вместо IF на

if (TouchPanel.IsGestureAvailable)

тогда будет

while (TouchPanel.IsGestureAvailable)

теперь это работает как шарм !!!

Я надеюсь, что это будет полезно для людей, которые могут иметь ту же проблему

...