c++ - SFML 秒计数器
问题描述
我正在使用 SFML 库制作游戏,我想实现一个功能,显示自程序运行以来屏幕上的秒数,并且它会增加直到窗口关闭。我试过这个:
sf::Clock clock;
while (window.isOpen())
{
sf::Time elapsed = clock.restart();
updateGame(elapsed);
}
但我不知道它是如何工作的,或者即使它是正确的功能。到目前为止,这是我的代码https://github.com/basmaashouur/GamesLib/blob/master/cards/main.cpp
解决方案
有多种方法可以获得秒数。
首先,您可以sf::Clock
为此使用永远不会重置的独占:
sf::Clock clock;
const unsigned int seconds = static_cast<unsigned int>(clock.getElapsedTime().asSeconds());
作为替代方案,您可以使用 ansf::Time
来累积帧之间的时间(例如,在您的updateGame()
函数内部):
sf::Clock clock;
sf::Time time;
time += clock.restart();
const unsigned int seconds = static_cast<unsigned int>(time.asSeconds());
推荐阅读
- apache-kafka - Kafka Connect fetch.max.wait.ms 和 fetch.min.bytes 组合不兑现?
- flutter - 如果 Facebook 应用程序不可用,我想打开网站,但优先级应该是应用程序优先
- asp.net-core - 我如何为页面处理程序操作 RedirectToPage 的引用者?
- asp.net - ASMX 服务无法处理超过 1 MB 的文件
- html - 如何制作包含两个内联字段的组表单?
- javascript - 通过CSS隐藏括号内的文本?
- mysql - 使用 Sqoop 命令从 MySQL 到 Hive 动态创建分区键
- vba - 从下拉列表中选择项目时如何启动更改事件?
- j2objc - 如何从 ObjC 访问 Android 字符串资源
- java - Java 从 Firebase 数据库中检索用户数据并将其存储在变量 Android Studio 中