作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的问题,我正在尝试为 Windows Phone 制作一款大型游戏,但我仍然遇到一个重要的瓶颈/问题/性能不佳。
我用过 mango profiler,但我没有发现任何问题,事实上它在我的手机上只使用了 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 是一个 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 对于 UPDATE 来说似乎太慢了,或者有点慢。
例如:
1) 我向右拖动屏幕,速度非常慢 -> map 纹理正确地向右移动
2) 我向右拖动屏幕,然后向左拖动,相当快 -> map 纹理正确地向右移动,但向左移动时有一点滞后,就像它仍在向右移动一样..
3) 我在 1 秒内循环拖动屏幕形成一个圆圈 -> 好吧, map 需要 3 秒才能循环移动..
我做错了什么??
我应该给你看一个 youtube 视频吗??
非常感谢!!卢卡
最佳答案
已修复!
这太愚蠢了..
有可能我们在绘制之前同时有多个触摸,所以我们必须把一个WHILE而不是IF放在
if (TouchPanel.IsGestureAvailable)
那就是
while (TouchPanel.IsGestureAvailable)
现在它就像一个魅力!!!
希望对遇到同样问题的人有所帮助
关于c# - 手势 FreeDrag 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9296226/
我有一个简单的问题,我正在尝试为 Windows Phone 制作一款大型游戏,但我仍然遇到一个重要的瓶颈/问题/性能不佳。 我用过 mango profiler,但我没有发现任何问题,事实上它在我的
我是一名优秀的程序员,十分优秀!