c# – Gesture FreeDrag性能
发布时间:2020-12-15 17:23:46 所属栏目:百科 来源:网络整理
导读:我有一个简单的问题,我正试图为 Windows Phone制作一个巨大的游戏,但我仍然有一个重要的瓶颈/问题/糟糕的表现. 我已经使用了芒果分析器,但我没有看到任何问题,事实上它在我的手机上只使用了10%的CPU. 让我告诉你这个问题. 这是我的更新 protected override
我有一个简单的问题,我正试图为
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); } 这是我的Draw,其中map是20×15 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); } 问题是,对于UPDATE或者有点而言,DRAW太慢了. 例如: 1)我将屏幕拖到右边,非常慢 – >地图纹理正确地在右侧移动 2)我拖动屏幕右侧,然后左侧,非常快 – >地图纹理在右侧正确移动,但在左侧移动时有一点滞后,就像它仍然在右侧移动一样. 3)我将屏幕循环拖动,在1秒内制作一个圆圈 – >好吧,地图需要3秒才能循环移动.. 我做错了什么? 我应该给你看一个youtube视频吗? 非常感谢你!! 解决方法
固定!
这太蠢了.. 我们可能会在抽奖前的同一时间内多次触摸,因此我们必须将WHILE而不是IF if (TouchPanel.IsGestureAvailable) 那就是 while (TouchPanel.IsGestureAvailable) 现在它就像一个魅力!!! 我希望这对那些可能遇到同样问题的人有所帮助 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |