好吧,显然xna游戏只能以30fps的速度运行,这是一种耻辱,因为我们在iPhone上的游戏看起来好多了60 …
无论如何,因为获得有关触摸屏状态的信息的唯一方法是获得其当前状态,实际上这意味着您只能以30 fps采样触摸屏.
即使我们的游戏必须以30fps运行,有没有办法从触摸屏获得更高分辨率的采样?也许通过回调?或者通过访问带有时间戳的触摸事件列表?
解决方法
您正在寻找的功能是
TouchPanel.GetState
.在60Hz下调用此功能很简单.
要获得60Hz,您可以将Game.TargetElapsedTime
设置为1/60秒.假设您在30FPS处进行VSyncing,这将为您提供每次抽奖的两次更新(根据Shawn Hargreaves’ post here).
如果您仍希望游戏状态更新以30FPS运行(仅以60FPS进行触摸输入),那么您可以将这些更新放在不同的线程上.在第一次调用Game.Update时开始对该线程进行更新,并等待它在第二个上完成,依此类推.
(您应该注意,通常XNA输入必须在主线程(source)上完成.我认为这适用于手机和触摸输入.)
或者你可以完全替换Game类的时间(自己调用GraphicsDevice.Present
).做起来并不容易,但这是可能的.一个好的开始是查看Reflector中的Game类.
(免责声明:我还没有尝试任何基于手机的实际开发,所以可能会有一些我不知道的与手机有关的问题.)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。