windows phone 7,xna,如何更定期地对触摸屏进行采样

windows phone 7,xna,如何更定期地对触摸屏进行采样,xna,windows-phone-7,touchscreen,Xna,Windows Phone 7,Touchscreen,好的,显然xna游戏只能以30fps的速度运行,这是一个遗憾,因为我们在iphone上的游戏在60秒时看起来好多了 无论如何,因为获取触摸屏状态信息的唯一方法是获取其当前状态,这实际上意味着您只能以每秒30帧的速度对触摸屏进行采样 即使我们的游戏必须以每秒30帧的速度运行,有没有办法从触摸屏上获得更高分辨率的采样?也许通过回拨?或者通过访问带有时间戳的触摸事件列表?出于性能原因,将采样率设置为30fps 即使你能找到一种更频繁地查询触摸的方法,你仍然不能以更快的速度更新UI,所以我不确定你会得到

好的,显然xna游戏只能以30fps的速度运行,这是一个遗憾,因为我们在iphone上的游戏在60秒时看起来好多了

无论如何,因为获取触摸屏状态信息的唯一方法是获取其当前状态,这实际上意味着您只能以每秒30帧的速度对触摸屏进行采样


即使我们的游戏必须以每秒30帧的速度运行,有没有办法从触摸屏上获得更高分辨率的采样?也许通过回拨?或者通过访问带有时间戳的触摸事件列表?

出于性能原因,将采样率设置为30fps

即使你能找到一种更频繁地查询触摸的方法,你仍然不能以更快的速度更新UI,所以我不确定你会得到什么好处


在花太多时间寻找解决方案之前,我会在实际设备上测试30fps的可接受性。

您正在寻找的功能是。以60Hz的频率调用此函数很简单

要获得60赫兹,你可以设置为1/60秒。假设以30FPS的速度进行VSyncing,这将为每个绘图(根据)提供两个更新

如果您仍然希望游戏状态更新以30FPS的速度运行(仅以60FPS的速度进行触摸输入),那么您可以将这些更新放在不同的线程上。在第一次调用
Game.update
时,启动该线程上的更新,并等待第二次调用完成,依此类推

(您应该注意,通常XNA输入必须在主线程()上完成。我假设这适用于电话和触摸输入。)

或者,你可以完全自己(称自己)替换
游戏
类的计时功能。这不容易做到,但这是可能的。一个好的开始是在Reflector中查看
游戏


(免责声明:我还没有尝试任何实际的基于手机的开发,因此可能存在一些我不知道的与手机相关的问题。)

哦,我们有,问题是我们有一条跟踪触摸的线索。它在30帧的速度下会很颠簸,我们暂时用样条线来平滑它,但是你做不到这一点似乎还是有点奇怪。。。你可以在iphone3g上做这件事。。。我有比这更强大的烹饪设备。。。地狱。。。即使是DS…你也必须记住,Windows操作系统不会总是像iPhone一样在同一个硬件上运行-会有不同的可用功能。还需要考虑电池寿命。