手势自由拖动性能

本文关键字:性能 拖动 自由 | 更新日期: 2023-09-27 18:24:48

我有一个简单的问题,我正试图为Windows Phone制作一个巨大的游戏,但我仍然有一个重要的瓶颈/问题/糟糕的性能。

我使用过芒果评测器,但我没有发现任何问题,事实上它在我的手机上只使用了10%的cpu。

让我给你看看这个问题。

这是我的更新

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纹理2D

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视频吗??

非常感谢!!Luca

手势自由拖动性能

固定!

这太愚蠢了。。

可能在抽签前我们同时有多次触球,所以我们必须在上加一个WHILE而不是IF

if (TouchPanel.IsGestureAvailable)

那么它将是

while (TouchPanel.IsGestureAvailable)

现在它就像一个符咒!!!

我希望这将对那些可能有同样问题的人有所帮助