我是C Sharp的新手,并且正在编写一个带有XNA Framework的游戏.我创建了一个项目,它是"Platformer"XNA入门套件的一个经过大量修改的版本.
我看到(似乎)随帧速率的随机波动.有时它一直以60 FPS的速度运行,有时它会从60 FPS开始然后降到49-52,而其他时间它会立即降到49-52.使用Fraps显示帧率(不将视频录制到磁盘).
这款游戏的独特之处在于它始终以60 FPS的速度运行.
所以似乎一些竞争条件或随机因素导致exe的各个运行之间的差异.无数的重建没有任何区别.
这种波动在我的台式机和笔记本电脑上以完全相同的频率发生,因此它不是硬件,防病毒等问题.
我已经搜索了如何在XNA中锁定帧速率,我的代码似乎正在做很多需要做的事情,包括尝试钳制60 FPS(使用IsFixedTimeStep,SynchronizeWithVerticalRetrace).
游戏从头到尾绝对能够达到60 FPS,我一直都在看.当它以60 FPS运行时,就我所知,它不会对CPU,RAM或任何其他资源征税.
有人经历过这个吗?
谢谢, - S.
我是C Sharp的新手,并且正在编写一个带有XNA Framework的游戏.
我正在尝试为XBox 360控制器上的按钮建立变量,因此我可以在一个地方重新配置按钮的游戏功能,而不必在任何地方更改对按钮的直接引用.
所以,如果我想指定一个"攻击"按钮,而不是:
if (gamePadState.IsButtonDown(Buttons.B)
{
// do game logic
}
Run Code Online (Sandbox Code Playgroud)
我想做这个:
if (gamePadState.IsButtonDown(MyAttackButton)
{
// do game logic
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我确信这是一个非常简单的解决方案,但我已经尝试了几种方法,但还没有一种方法可行.谢谢!