Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# gameTime.ElapsedGameTime.Seconds未更新_C#_Time_Spritefont - Fatal编程技术网

C# gameTime.ElapsedGameTime.Seconds未更新

C# gameTime.ElapsedGameTime.Seconds未更新,c#,time,spritefont,C#,Time,Spritefont,我刚刚发现了一些引起我兴趣的东西。看,我通常用int Time=Duration来做我的“计时器”在我的更新中,它将变成Time-=gameTime.ElapsedGameTime.millides。然而,我只是试着用gameTime.ElapsedGameTime.Seconds来做,因为我认为这会对性能更友好。但现在它根本没有更新 我的代码基本上是: 声明变量: int-Time=120SpriteFont spriteFont1 更新:Time-=gameTime.ElapsedGameT

我刚刚发现了一些引起我兴趣的东西。看,我通常用
int Time=Duration来做我的“计时器”在我的更新中,它将变成
Time-=gameTime.ElapsedGameTime.millides。然而,我只是试着用
gameTime.ElapsedGameTime.Seconds
来做,因为我认为这会对性能更友好。但现在它根本没有更新

我的代码基本上是:

声明变量:
int-Time=120
SpriteFont spriteFont1

更新:
Time-=gameTime.ElapsedGameTime.Seconds

绘制字符串来告诉我时间:
spriteBatch.Draw(时间、位置、颜色、白色)


不知怎的,字符串只告诉我,当我用毫秒而不是秒来做时,时间在减少。为什么?

游戏时间。ElapsedGameTime.Seconds
是自上次更新以来的时间量。由于它更新非常快,更新之间的时间小于秒。秒返回为
int
,因此您将始终得到0。

ElapsedGameTime不是每次更新之间经过的时间吗?我可能错了,但是如果每次更新之间的时间不到一秒,那么每次更新的时间总是为零,因为每次都会重置。使用
Total*
TotalSeconds
,而不是
Seconds
@Diamondo25 TotalSeconds对他的倒计时不起作用。它会做-1秒,然后是-2,-3,等等。顺便说一下,秒并不比毫秒更“性能友好”。也许如果你有一百万个电话,你可以节省几微秒(不知道它在内部是如何工作的),但这不可能成为你应用程序的瓶颈。谢谢,评论中已经说过了,但这是唯一的物理答案。另外,如果我希望它是实际的时间,而不是帧之间的时间,那么应该怎么做呢?可以使用
TotalGameTime
或者只是将毫秒添加到一个变量中。通过将时间存储在变量中,您将能够“重置”计时器。