出现在游戏屏幕上的计时器
Posted
技术标签:
【中文标题】出现在游戏屏幕上的计时器【英文标题】:Timer to appear on Game Screen 【发布时间】:2010-11-14 07:46:30 【问题描述】:我在基本表单窗口上使用 C# 制作了一个倒数计时器,我希望它出现在游戏屏幕上我试图设置表单属性,但它在游戏屏幕上不起作用。 怎么做?有什么想法吗?
【问题讨论】:
你的意思是你希望它总是在顶部,有点像 fps 计数器。 @cdHowie: Game Screen Means 在游戏期间的计时器也会在顶部。 对,但这是你的游戏,还是其他人的游戏? @cdHowie:不,它不是我的任何第三方游戏。 由于大多数游戏会切换到全屏直接渲染模式,这不是您可以轻松做到的,尤其是使用 Winforms 时更是如此。您将不得不在非常低的级别上使用 DirectX/OpenGL 并挂钩到游戏的缓冲区切换调用。 【参考方案1】:如果您希望将计时器绘制到现有的 DirectX 或 OpenGL 支持的游戏中,那么我建议您查看以下问题,该问题提供了有关挂钩和拦截调用以及使用应用程序绘制调用的能力的信息。不过,我相信这超出了您希望在添加计时器时遇到的复杂程度。
链接:OpenGL/DirectX Hook - Similar to FRAPS
【讨论】:
【参考方案2】:由于您没有说明您使用的是 OpenGL、XNA 还是什么,我会给您一个通用的回复。
如果这是你的游戏
您的启动画面应该是游戏循环的一部分。这意味着将有一个 update() 和一个 draw()。
在 update 方法中,您必须计算剩余时间并将其存储在对象的变量或属性中。
在 draw 方法中,您应该绘制剩余时间。
我的建议是您创建一个 TimeCounter 类,因为您似乎也将在游戏中重用它。
如果不是你的游戏
大多数游戏将切换到全屏直接渲染模式。这不是不可能,但相当困难。
如果游戏是网页的,那么你可以把它包装在 IFrame 或类似的里面,然后放上计数器
【讨论】:
以上是关于出现在游戏屏幕上的计时器的主要内容,如果未能解决你的问题,请参考以下文章