手势自由拖动性能
本文关键字:性能 拖动 自由 | 更新日期: 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)
现在它就像一个符咒!!!
我希望这将对那些可能有同样问题的人有所帮助