小编Sco*_*ott的帖子

XNA Platformer(2D) - 帧速率/ FPS波动

我是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# xna xbox360

5
推荐指数
1
解决办法
1572
查看次数

如何在C#中使用Xbox 360按钮?

我是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)

有任何想法吗?我确信这是一个非常简单的解决方案,但我已经尝试了几种方法,但还没有一种方法可行.谢谢!

c# xna xbox360

3
推荐指数
1
解决办法
503
查看次数

标签 统计

c# ×2

xbox360 ×2

xna ×2